ciao, puo' essere che tu abbia settato il body del response con il descrittore del file non ancora resettato.
Ti consiglio di fare qualcosa del tipo: filetemporaneo.seek(0) self.request.response.setBody(filetemporaneo.read()) return self.request.response.outputBody() prova un po' e facci sapere. ;) alessandro Il giorno 07 settembre 2012 11:35, Gianni Cozzolongo <[email protected]>ha scritto: > andando avanti col debug trovo che arrivando alla esecuzione del return > vero e proprio del form > .buildout/eggs/z3c.form-2.4.3-py2.6.egg/z3c/form/action.py(104)execute() > > il tipo di oggetto del result e' di tipo file e dovrebbe contenere il file > corretto, > > > ad un certo punto pero' > .buildout/eggs/Zope2-2.13.8-py2.6.egg/ZPublisher/Publish.py(129)publish() > -> response.setBody(result) > > il result e' diventato il render del fom ... > cosa non ho capito e dove sbaglio? > > Gianni > > > > > 2012/9/7 Vito Falco <[email protected]> > >> Non dovrebbe essere solo una questione di mime type? >> http://kb.iu.edu/data/agtj.html >> >> Vito >> >> Il giorno 07 settembre 2012 10:30, Gianni Cozzolongo <[email protected] >> > ha scritto: >> >> salve a tutti >>> >>> ho lo stesso problema ( il dowload del file mi presenta il file della >>> pagina del form) >>> solo che invece di una browser view ho un form creato con z3c.form. >>> >>> e quindi la action del form e' gestita dal @button.buttonAndHandler >>> >>> qualsiasi cosa metta come return mi restituisce il codice html della >>> vista. >>> >>> l'oggetto da far salvare e' un file che ho precedentemente salvato in un >>> tempfile.TemporaryFile. >>> >>> come faccio a restituirlo come file da scaricare? >>> >>> buon lavoro >>> Gianni >>> >>> >>> >>> 2012/3/15 Simone Orsi <[email protected]> >>> >>>> On 03/15/2012 02:35 PM, ciccio2000 wrote: >>>> >>>>> * giovedì 15 marzo 2012, alle 13:07, Simone Orsi scrive: >>>>> >>>>>> Ciao, >>>>>> >>>>> [...] >>>>> >>>>>> 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() >>>>>> >>>>> >>>>> E' in un metodo della view: >>>>> >>>>> class View(grok.View): >>>>> grok.context(IMapViewer) >>>>> grok.require('zope2.View') >>>>> >>>>> ... >>>>> >>>>> def downloadData(self): >>>>> ... >>>>> zfname = "/tmp/%s-%s-%s.zip" % (st, et, model) >>>>> ... >>>>> iterator = filestream_iterator(zfname, 'rb') >>>>> RESPONSE.setHeader... >>>>> return iterator >>>>> >>>>> >>>>> come ho detto il file non e' un oggetto plone, >>>>> ma viene generato su file system dinamicamente >>>>> a seconda di come viene riempito un form >>>>> (che si trova nella view). >>>>> >>>>> ciao e grazie. >>>>> >>>> non importa da dove arriva il contenuto, importa come lo restituisci ;) >>>> >>>> Non so come vuoi che funzioni il tutto ma una possibile soluzione e' >>>> quella che ti ho detto prima, farlo ritornare al __call__. >>>> >>>> Magari puoi mettere un pulsante di submit per il download che richiami >>>> la stessa vista e nel __call__ fai qualcosa del genere: >>>> >>>> def __call__(self): >>>> if self.request.get('download'): >>>> return self.downloadData() >>>> return super(self.__class__,self).__**call__() >>>> >>>> ______________________________**_________________ >>>> Plone-IT mailing list >>>> [email protected] >>>> https://lists.plone.org/**mailman/listinfo/plone-plone-**it<https://lists.plone.org/mailman/listinfo/plone-plone-it> >>>> http://plone-regional-forums.**221720.n2.nabble.com/Plone-** >>>> Italy-f221721.html<http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html> >>>> >>> >>> >>> _______________________________________________ >>> 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 >>> >> >> >> >> -- >> *Vito Falco* >> Webdeveloper & designer freelance, Plone enthusiast >> Bari, IT >> tel +393346330137 | skype vito80ba | twitter vito80ba >> Blog http://appuntiplone.wordpress.com >> >> >> _______________________________________________ >> 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 >> > > > _______________________________________________ > 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 > -- bye SauZheR ************************************ l'iterazione è umana... la ricorsione, Divina! ************************************ reply to: sauzher AT gmail DOT com
_______________________________________________ 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
