Ciao,

On 03/14/2012 04:07 PM, ciccio2000 wrote:
Ciao a tutti.

Dunque ho un prodotto sviluppato con dexterity.
All'interno di una view ho inserito un metodo che viene chiamato dalla submit
di un form e dovrebbe restituire un file zip.

Il file in questione non e' un oggetto plone, ma viene creato dinamicamente
su filesystem a seconda dei dati inseriti nel form.

Quindi per far restituire il file, ho fatto cosi':

********************************************************************
iterator = filestream_iterator(zfname, 'rb')
stat = os.stat(zfname)

RESPONSE=self.request.response
RESPONSE.setHeader('Content-Disposition', 'attachment; filename="%s"' % 
zfname.replace("/tmp/",""))
RESPONSE.setHeader('Content-Type', "application/zip")
RESPONSE.setHeader('Content-Length', stat.st_size)

return iterator
********************************************************************

Ora, in questo modo mi fa scaricare un file zip con il nome corretto ma che in
realta' non e' altro che l'html della view.

Se invece dell'iterator leggo tutto il file (e' un approccio da evitare, ma
per provare ...) restituisce il file zip corretto, ma sempre mischiato con
l'html della vista.

Qualcuno ha idea di quale possa essere il problema?

La mia conf:
Plone 4.0.5
Zope 2.12.17
Python 2.6.6

come restituisci il contenuto del file? Quel "return iterator" dove sta?

Se restituisci il contenuto del file nel __call__ della view ti deve per forza mostrare il contenuto del file.

Tipo:

def __call__(self):
    return self.get_file_content()


_______________________________________________
Plone-IT mailing list
[email protected]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html

Rispondere a