-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 John Toews wrote: > Zope 2.8.0, Python 2.3.5 > > I'm having a heck of a time figuring out how to zip up some files in my zope > instance and return them to the user. I can sucessfully create a zip file on > the local file system, but if I try to pass it back to the user it is > corrupted. Of course I'd rather not create this tmp3.zip file, so if there's > a way around that (which I'm sure there is!) please do let me know. > > filename = 'test.zip' > response = self.REQUEST.RESPONSE > response.setHeader('Content-Type','application/zip') > response.setHeader('Content-Disposition','attachment; filename=%s' > % filename) > # tried zf = zipfile.ZipFile( response, 'w' ) but get error, ZHTTP > object doesn't have tell method > zf = zipfile.ZipFile( '/tmp3.zip', 'w' ) > zf.writestr( 'testfilename', str( self._getOb( testfileid ) ) ) > zf.close() > f = open('/tmp3.zip') > return f.read() > > Any thoughts on what fairly obvious thing I'm doing wrong? Thanks!
A couple of thoughts: - Be sure you open the file in binary mode ('wb' rather than 'w'); this won't help unless you are running Zope on Windows, however, because Windows is the only platform where the C runtime will mangle the line endings for files it thinks are "text", rather than "binary". - You could use a StringIO instance, rather than a tempfile; YMMV. Tres. - -- =================================================================== Tres Seaver +1 202-558-7113 [EMAIL PROTECTED] Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDvI6r+gerLs4ltQ4RAvrMAJ9oH0gtorWuW6NeowfVCfZ6PbyYSgCfbCHd 8VhNtnUrBeEiIp8sSLSVQOg= =f+qw -----END PGP SIGNATURE----- _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )