【问题标题】:Flask downloads previous file version in responseFlask 下载以前的文件版本作为响应
【发布时间】:2021-05-19 00:43:59
【问题描述】:

我正在运行一个烧瓶应用程序,它下载用户创建的 zip 文件。

zipfile 被删除/覆盖目录中用户的同名文件。

然后,当我获得下载链接时,它会下载旧的 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, 'app', zip_name),  mimetype='zip', attachment_filename=zip_name, as_attachment=True)

【问题讨论】:

    标签: python flask download request


    【解决方案1】:

    在我的情况下,解决方案是将附件包装在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 2015-07-03
      • 2016-06-21
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多