如何解决Flask 下载以前的文件版本作为响应
我正在运行一个 Flask 应用程序,用于下载用户创建的 zip 文件。
然后,当我获得下载链接时,它会下载旧的 zipfile,其中包含无法打开的已删除文件。
该链接在隐身模式下正常工作。
但是在常规的 chrome 中,请求在提供 zip 文件之前不会到达测试服务器。
有人知道可能是什么问题吗?
@page.route('/response/<id>')
def response(id):
user = User.query.filter(User.spreadsheet_id.any(id)).first()
print(user.spreadsheet_id)
zip_name = f'{user.email}_zip.zip'
path = ''
root_dir = os.path.dirname(os.getcwd())
print(os.path.join(root_dir,'app',zip_name))
return send_file(os.path.join(root_dir,zip_name),mimetype='zip',attachment_filename=zip_name,as_attachment=True)
解决方法
就我而言,解决方案是将附件包装在 Response
对象中并添加缓存控制标头:
attachment = send_file(os.path.join(root_dir,'app',zip_name),mimetype='zip',attachment_filename=zip_name,as_attachment=True)
resp = make_response(attachment)
resp.cache_control.max_age = 120
return resp
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。