From 9e91abcf885383cee41a2c4f11d4777b58acf1aa Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Thu, 18 Sep 2008 17:51:42 +0200 Subject: [PATCH] Zip archives work! --- apps/catalogue/views.py | 21 ++++++++++----------- wolnelektury/settings.py | 6 +++--- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index 58ef8928f..1be05b442 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -210,34 +210,33 @@ def download_shelf(request, slug): """ shelf = get_object_or_404(models.Tag, slug=slug, category='set') + from StringIO import StringIO + + # Create a ZIP archive - temp = tempfile.TemporaryFile() + temp = temp = tempfile.TemporaryFile() archive = zipfile.ZipFile(temp, 'w') for book in models.Book.tagged.with_all(shelf): if book.pdf_file: filename = book.pdf_file.path print filename - archive.write(filename, str('%s.pdf' % book.slug[:7])) + archive.write(filename, str('%s.pdf' % book.slug)) if book.odt_file: filename = book.odt_file.path print filename - archive.write(filename, str('%s.odt' % book.slug[:7])) + archive.write(filename, str('%s.odt' % book.slug)) if book.txt_file: filename = book.txt_file.path print filename - archive.write(filename, str('%s.txt' % book.slug[:7])) + archive.write(filename, str('%s.txt' % book.slug)) archive.close() - - zf = zipfile.ZipFile(temp, 'r') - print zf.testzip() - print zf.namelist() - wrapper = FileWrapper(temp) - response = HttpResponse(wrapper, content_type='application/zip') + response = HttpResponse(content_type='application/zip', mimetype='application/x-zip-compressed') response['Content-Disposition'] = 'attachment; filename=%s.zip' % shelf.sort_key response['Content-Length'] = temp.tell() - print temp.tell() temp.seek(0) + response.write(temp.read()) + return response diff --git a/wolnelektury/settings.py b/wolnelektury/settings.py index 12edea30f..3afa9dd68 100644 --- a/wolnelektury/settings.py +++ b/wolnelektury/settings.py @@ -72,13 +72,13 @@ MIDDLEWARE_CLASSES = [ 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.middleware.doc.XViewMiddleware', + # 'django.middleware.doc.XViewMiddleware', 'pagination.middleware.PaginationMiddleware', ] # If DEBUG is enabled add query log to bottom of every template -if DEBUG: - MIDDLEWARE_CLASSES.append('middleware.ProfileMiddleware') +# if DEBUG: +# MIDDLEWARE_CLASSES.append('middleware.ProfileMiddleware') ROOT_URLCONF = 'urls' -- 2.20.1