【问题标题】:Flask send_file not working although the file exists尽管文件存在,但 Flask send_file 不起作用
【发布时间】:2020-10-10 00:50:29
【问题描述】:

我有一个对烧瓶路由的 ajax 调用。此 ajax 调用位于按钮的 onlick 函数内(因为我必须发送一些预处理数据)。在 python 代码中,我创建了一个带有 2 个选项卡的 xlsx spreadhseet 并将文件保存在服务器中。然后我试图在客户端下载它但没有成功。没有错误,响应是 200 OK,但是文件没有下载。 这是我的python代码:

@app.route('/download_file', methods=['GET', 'POST'])
def download_file():
    v1 = request.json['v1']
    v2 = request.json['v2']
    v1_df = pd.DataFrame(v1, columns=V1_HEADERS)
    v2_df = pd.DataFrame(v2, columns=V2_HEADERS)
    final_excel = f'resources/final_excel.xlsx'
    writer = pd.ExcelWriter(final_excel, engine='xlsxwriter')
    v1_df.to_excel(writer, sheet_name='V1', index=False)
    v2_df.to_excel(writer, sheet_name='V2', index=False)
    writer.save()
    return send_file(final_excel, as_attachment=True, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')

我也试过send_directory,但没有成功。

我做错了什么?我有点绝望。

非常感谢您。

【问题讨论】:

  • 你看过我的回答了吗?

标签: python jquery ajax flask


【解决方案1】:

在我看来,您可能没有正确处理 Ajax 回调中返回的 file。由于这是一个 Ajax 调用,它将返回给相关的回调供您处理。

因此,在您的.JS 代码中,如您所愿,例如

 success:function(callback){
    var temp = 'file-> ' + callback;
    $(doc).text(temp)
 }

这也可能有帮助 - Download a file

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2013-04-14
    • 2019-04-09
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多