在 Django 中提供可下载文件会引发服务器错误
Serving a downloadable file in django throws server error
我是 django 的新手。我正在尝试使用 django FileWrapper 提供可下载文件。但是,我不断收到内部服务器错误消息。
编辑:我的 settings.py
DEBUG=True
html 链接:
abcd.com/downloadResult/fileName/
我的urls.py
url(r'^downloadResult/(\w{0,50})/$',"myApp.views.showResult",name="Result"),
我的views.py
from django.core.servers.basehttp import FileWrapper
def showResult(request,fileName):
file=open("/path/to/file/"+fileName+".txt","r")
response=HttpResponse(FileWrapper(file),mimetype='application/force-download')
response['Content-Disposition']='attachment; filename=%s' % smart_str(fileName+".txt")
file.close()
return response
有人可以指导我进行一些讨论或指出我遗漏了什么吗?
谢谢!
我发现了我的代码的问题。我在 return 之前关闭了文件。注释掉 views.py 中的倒数第二行后,它工作正常。我在 apache 日志文件中找到了错误消息,但即使 DEBUG 设置为 True,浏览器中也没有收到任何错误消息。
现在,此解决方案的问题是,有些文件已打开但从未关闭。
我是 django 的新手。我正在尝试使用 django FileWrapper 提供可下载文件。但是,我不断收到内部服务器错误消息。
编辑:我的 settings.py
DEBUG=True
html 链接:
abcd.com/downloadResult/fileName/
我的urls.py
url(r'^downloadResult/(\w{0,50})/$',"myApp.views.showResult",name="Result"),
我的views.py
from django.core.servers.basehttp import FileWrapper
def showResult(request,fileName):
file=open("/path/to/file/"+fileName+".txt","r")
response=HttpResponse(FileWrapper(file),mimetype='application/force-download')
response['Content-Disposition']='attachment; filename=%s' % smart_str(fileName+".txt")
file.close()
return response
有人可以指导我进行一些讨论或指出我遗漏了什么吗?
谢谢!
我发现了我的代码的问题。我在 return 之前关闭了文件。注释掉 views.py 中的倒数第二行后,它工作正常。我在 apache 日志文件中找到了错误消息,但即使 DEBUG 设置为 True,浏览器中也没有收到任何错误消息。 现在,此解决方案的问题是,有些文件已打开但从未关闭。