【发布时间】:2018-06-11 00:17:56
【问题描述】:
我将 django 用于一个小项目,我会让用户能够下载 media/doc/ 路径中已经存在的 pdf
所以我写了这段代码
with open('media/doc/document.pdf', 'r',encoding='latin1',errors='replace') as pdf:
response = FileResponse(pdf.read(), content_type='application/pdf')
response['Content-Disposition'] = 'inline;filename=some_file.pdf'
return response
但是当下载 pdf 文件时,页面显示为空 btw 我已经尝试过 utf-8 编码并且对我不起作用,即使 this 对我不起作用
那么我怎样才能使页面可见?
【问题讨论】:
-
你确定这确实指向你的文件
open('media/doc/document.pdf? -
@Lemayzeur 是的,我是,该文件已经存在并且已下载,但它给了我空白页顺便说一句我测试了许多文件,但我面临同样的问题
-
尝试发送
HttpResponse(pdf.read(), content_type='application/pdf'),其中应用程序/pdf 作为 content_type。并删除 open() 中的所有参数,例如with open('media/doc/document.pdf', 'rb') as pdf.dont't for foregetrbfor binary -
@Lemayzeur 它对我有用 谢谢你,非常感谢你的帮助
-
太棒了!我在您的 cmets 中看到您遇到的问题:用户将下载相同的 pdf 文件,您现在可以使用吗?