[Django][Python] Djangoでzipパスワード付きファイルをダウンロード
移転しました。
ググってもzipパスワード付きファイルを作成する方法は、日本のサイトでなかなか見つからんかったが海外のサイトで発見。
参考URL
http://www.example-code.com/python/cert_usePrivateKeyFromPEM.asp
とおもいきや、なんかWindowsしかこれつかえんらしい。
つかえん。。。
結局以下を参考に、popenで対応。
参考URL
http://mail.python.org/pipermail/python-list/2008-March/480814.html
def download(request): reponse = HttpResponse(); response = HttpResponse(mimetype='application/zip') tmp_dir = '/tmp/' zip_file = 'hoge.zip' csv_file = 'hoge.csv' fw = open(tmp_dir + csv_file, 'w') fw.write('うぉぉ!!!!!!!!!!!!!') fw.close() cmd = "zip -P %s -e %s %s" % (ZIP_PASS, tmp_dir + zip_file, tmp_dir + csv_file) print cmd os.popen(cmd, 'r') response['Content-Disposition'] = 'attachment;filename=' + zip_file dzip = open(tmp_dir + zip_file, 'r') response.write(dzip.read()); os.remove(tmp_dir + zip_file) os.remove(tmp_dir + csv_file) return response;
ちなみに Python で zip ファイル作る方法も調べたのでめもっとく
from zipfile import ZipFile z = ZipFile('hoge.zip', 'w') z.writestr('hoge.csv', 'hoge content') z.close()