2011-09-05 71 views
0

請幫我解決我的問題。django/python |從數據庫獲取文件,zip,然後發送到瀏覽器

對不起,如果這聽起來不方便,因爲我真的是。有文件(JPG格式,文檔)中某個數據庫,我將如何選擇數據庫中的文件,將它們保存在一個zip文件,然後發送到瀏覽器作爲HttpResponse對象或者是這樣的:

response = HttpResponse(mimetype='application/zip') 
response['Content-Disposition'] = 'filename=group.zip' 

這個讓我非常困擾的部分是從數據庫中提取文件的時候,因爲Google似乎沒有什麼幫助。

一些相關的代碼我的是這些:

temp = request.POST.getlist('cbox') #cbox is the field in form 
tempx = models.FileTable.objects.filter(pk__in = temp) 

我已經不知道該怎麼在這裏做。提前致謝! :p

+0

我發現這個代碼,但我有各種各樣的文件類型。 ()「 files = [] Thing.objects.all()中的東西: files.append((」%s.pdf「%(thing.id,),thing.biggish_file())) buffer = StringIO() 拉鍊= zipfile.ZipFile(緩衝器, 「W」,zipfile.ZIP_DEFLATED) 爲名稱,F在文件: zip.writestr(名稱,F) zip.close() buffer.flush() ret_zip =緩衝器.getvalue() buffer.close() response.write(ret_zip) return response –

回答

1

您正在尋找zipfileStringIO。創建一個StringIO,將其打開爲ZipFile,向其中添加文件,然後send it

+0

我認爲這是一個簡單的方法,但由於我是新的python,我真的不知道該怎麼做。 :( –

相關問題