0

Chrome は zip ファイルを「download.zip」としてダウンロードし、Firefox は「IEtEk_sk.zip.part」としてダウンロードし、Internet Explorer は保存を求めるプロンプトさえ表示せず、生のコンテンツを別のウィンドウで開こうとします。ダウンロードがすべてのブラウザーで「dbs_custom_library.zip」として保存されないのはなぜですか? IE でまったくダウンロードされないのはなぜですか?

htmlフォーム

<form action="/django/builder/buildit/" method="POST">
<input type="checkbox" name="list" value="val1" checked/>
<input type="checkbox" name="list" value="val2" checked/>
<input type="checkbox" name="list" value="thisispersian" checked/>
<input type="submit" value="Submit!" />
</form>

ビュー.py

def zipit (file_paths):
  buffer= StringIO.StringIO()
  z= zipfile.ZipFile( buffer, "w" )
  for p in file_paths:
    if os.path.isdir(p):
      for dir, subdirs, files in os.walk(p):
        for f in files:
          filename = os.path.join(dir, f)
          z.write(filename, arcname = filename[31:])
    else:
      z.write(p, arcname = p[31:])
  z.close()
  buffer.seek(0)
  return buffer.getvalue()

def persian (mylist):
  files = []
  if 'val1' in mylist:
    files.append('/home/dbs/public_html/download/Persian/Books/val1.html')
  if 'val2' in mylist:
    files.append('/home/dbs/public_html/download/Persian/Books/val2.html')
  return files

def main(request):
  if request.method == 'POST':
    mylist = request.POST.getlist('list')
    if 'thisispersian' in mylist:
      files = persian(mylist)
    zipped = zipit(files)
    zipped['Content-Disposition'] = 'attachment; filename=dbs_custom_library.zip'
    return HttpResponse(zipped, mimetype="application/x-zip-compressed")
  else:
    return http.HttpResponseForbidden()
4

1 に答える 1

2

を にパッケージ化しHttpResponseていHttpResponseます。そうしないでください。

于 2012-06-20T18:03:18.870 に答える