在Flask中以HTTP响应头中的Content-Length提供静态文件
我正在写一个小的Python Flask应用程序,目的是让人们可以从我的服务器下载文件。这些文件是由Python提供的,而不是像Nginx或Apache这样的网络服务器。
我尝试使用send_from_directory()
和send_file()
来下载文件,虽然文件可以下载,但没有显示文件大小,因为在响应的头部缺少Content-Length
字段。
我该如何在使用send_from_directory()
或send_file()
时添加这个头部呢?或者有没有其他更好的方法来实现这个功能。
谢谢。
1 个回答
1
如果你在Flask中使用 send_file()
并且传入的是一个 文件名(而不是文件对象),Flask会自动帮你设置 Content-Length
这个头信息。
send_from_directory()
其实是用 send_file()
来处理文件名的,所以你在这方面不用担心。
记得要使用Flask 0.10或更新的版本;这个头信息的设置是在那个版本中添加的。