Joh*_*etz 2 python pdf flask flask-uploads
我正在尝试使用 Flask 下载 PDF 文件,但我不希望该文件作为附件下载。我只是希望它作为一个单独的网页出现在用户的浏览器中。我尝试过将as_attachment=False选项传递给该send_from_directory方法,但没有成功。
到目前为止,这是我的功能:
@app.route('/download_to_browser')
def download_to_browser(filename):
return send_from_directory(directory=some_directory,
filename=filename,
as_attachment=False)
Run Code Online (Sandbox Code Playgroud)
该函数的工作原理是文件正在下载到我的计算机,但我更愿意将其显示在浏览器中(并让用户根据需要下载文件)。
我在这里读到我需要更改content-disposition参数,但我不确定如何有效地完成此操作(也许使用自定义响应?)。有什么帮助吗?
注意:我目前没有使用 Flask-Uploads,但我可能会继续使用。
您可以尝试将mimetype参数添加到send_from_directory:
return send_from_directory(directory=some_directory,
filename=filename,
mimetype='application/pdf')
Run Code Online (Sandbox Code Playgroud)
这对我有用,至少对于 Firefox 来说是这样。
如果您需要对标头进行更多控制,您可以使用自定义响应,但您将失去 send_file() 的优势(我认为直接从网络服务器提供文件确实很聪明。)
with open(filepath) as f:
file_content = f.read()
response = make_response(file_content, 200)
response.headers['Content-type'] = 'application/pdf'
response.headers['Content-disposition'] = ...
return response
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6836 次 |
| 最近记录: |