在 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,浏览器中也没有收到任何错误消息。 现在,此解决方案的问题是,有些文件已打开但从未关闭。