我尝试提供(6KB)生成的文件。我可以在开发中完成但不在生产中:
我的观点是这样的:
def download_export_view(request, ref):
selection = models.Selection.objects.get(id=ref, user=request.user)
filename = ref + '.csv'
filepath = os.path.join(EXPORTS_DIR, filename)
wrapper = FileWrapper(open(filepath))
response = StreamingHttpResponse(FileWrapper(open(filepath), 8192),
content_type=mimetypes.guess_type(filepath)[0])
response['Content-Disposition'] = 'attachment; filename="%s"' % (filename,)
response['Content-Length'] = os.path.getsize(filepath)
return response
我确信文件路径是正确的,因为我得到200状态并且没有异常(如FileNotFoundError),但是我的浏览器没有得到该文件。
答案 0 :(得分:0)
对我来说,这个片段解决了这个问题。
...
response = HttpResponse(wrapper, content_type='text/plain')
response['Content-Disposition'] = 'attachment; filename=%s' % (filename,)
wrapper.seek(0, os.SEEK_END)
response['Content-Length'] = wrapper.tell()
return response
...