Python 无法使用flask下载文件,而是显示在浏览器上
我阅读了很多关于如何从网站下载文件的文档和问题。我尝试使用Python 无法使用flask下载文件,而是显示在浏览器上,python,flask,Python,Flask,我阅读了很多关于如何从网站下载文件的文档和问题。我尝试使用send\u from\u directory,send\u file等,但所有响应都是相同的,即显示文件内容而不是下载文件 例如: return send_from_directory(directory="/var/tmp/", filename="app.log") 不确定是否需要更改任何apache配置或wsgi配置。取决于apache与wsgi应用程序的交互方式 您可以使用.htaccess或main config或 send
send\u from\u directory
,send\u file
等,但所有响应都是相同的,即显示文件内容而不是下载文件
例如:
return send_from_directory(directory="/var/tmp/", filename="app.log")
不确定是否需要更改任何apache配置或wsgi配置。取决于apache与wsgi应用程序的交互方式 您可以使用.htaccess或main config或
send_file(filename="/var/tmp/app.log",mimetype='application/octet-stream')
send_from_directory(directory="/var/tmp/", filename="app.log",mimetype='application/octet-stream')
请注意,您的Flask应用程序必须能够访问正在发送的文件以及Apache。2020答案
作为参数传递附件
return send_from_directory(directory="/var/tmp/", filename="app.log", as_attachment = True)
我最近没有讨论过Flask中的文件下载,但是对于其他想要帮助你的人来说,看看你的应用程序生成的响应标题的示例可能会非常有帮助,特别是
内容类型
和内容配置
。谢谢你的提示,让我看看我是否能从中得到什么。你使用的浏览器是什么?嗨,Rob,我正在Chrome和safari上测试。你的apache可以访问文件,我尝试了你的两个选项,但仍然在浏览器上呈现文件内容。然后apache可能会覆盖flask内容标题。或者介于两者之间。一些中间件。尝试在Apachei中强制使用头文件,我试图弄明白这一点,但不确定如何测试它。