0
私はDjangoで非常に簡単だと思うことをしようとしています:ユーザーの要求に基づいてXMLファイルを動的に作成し、そのファイルをダウンロードできるようにします。ダウンロードしたDjangoファイルが空です
xmlFile = open({PATH_TO_FILE}, 'r')
fileWrap = FileWrapper(xmlFile)
response = HttpResponse(fileWrap, mimetype='text/xml')
response['Content-Disposition'] = 'attachment; filename=data.xml'
response['Content-Length'] = os.path.getsize({PATH_TO_FILE})
return response
ファイルのダウンロードを、しかし、ダウンロードは、私がいることが確認されたにも関わらず、常に空です:私は見ているすべてのものに基づいて、グーグルのトンを行われてきた、私は右のそれをやっていますファイルがディスク上の正しい場所に存在し、空ではありません。私は3つの異なるブラウザ(Firefox、Safari、Chrome)でこれを試しましたが、それはブラウザの場合のためですが、結果は毎回同じです。アー。
@Ericオコナー:なぜあなたはそれの後にそれをロードするために、ディスク上のファイルを格納していますか?既にファイルとして保存している場合は、ユーザーを 'xml'ファイルにリダイレクトするほうがよいでしょうか?それがあなたの目的でない場合は、XMLレスポンスを作成するだけで返す必要があります。 – Wolph
私はちょうどこのトピックに気づいたので、これは重複しているようです:http://stackoverflow.com/questions/3213060/django-download-file-not-working/3213548#3213548 – Wolph
私は他の問題しかし、それは重複ではありません。その問題では、その人は自分のファイル情報をFileWrapperクラスに正しく渡していませんでした。具体的には、ユーザーがFileFieldオブジェクトで表されるファイルをダウンロードできるようにしようとしていて、フィールドデータに正しくアクセスしていなかった。あなたの質問に答えて、私はファイルがWebサーバーによって静的に提供されることを望んでいません。私は、Djangoによってダウンロードが処理されるようにしたいと思います。追加処理が必要なためです。 –