Code: Alles auswählen
buffer = cStringIO.StringIO()
z = zipfile.ZipFile(buffer, "w")
for file_info in files:
z.write(file_info)
z.close()
if simulation:
self.request.write("-"*80)
self.request.write("\n")
buffer.seek(0,2) # Am Ende der Daten springen
buffer_len = buffer.tell() # Aktuelle Position
buffer.seek(0) # An den Anfang springen
filename = posixpath.split(self.request_path)[-1]
if not simulation:
self.request.headers['Content-Disposition'] = 'attachment; filename="%s.zip"' % filename
self.request.headers['Content-Length'] = '%s' % buffer_len
self.request.headers['Content-Transfer-Encoding'] = 'binary'
self.request.headers['Content-Type'] = 'application/octet-stream; charset=utf-8'
self.request.write(buffer.getvalue())
Nur, wie lese ich Stückweise aus einem StringIO herraus?