用flask框架做了个简单的网页,后端已经处理生成了excel和word两个文件流,我知道用response可以直接return到前端下载,但是好像一次只能推一个(前端只收到一个文件),怎么弄才能同时把文件推送到前端下载呢?
2条回答 默认 最新
黄以礼 2023-06-18 17:25关注要在Flask中同时向前端推送多个文件,您可以将它们组合成一个zip文件,然后将该文件作为响应返回。以下是一个示例代码,假设您的后端已经生成了名为excel_data.xlsx和word_data.docx的两个文件流:
python
import io import zipfile from flask import Flask, Response app = Flask(__name__) @app.route('/download') def download(): # 将两个文件流组合成一个zip文件 with io.BytesIO() as output: with zipfile.ZipFile(output, mode='w') as zip_file: zip_file.writestr('excel_data.xlsx', excel_data) zip_file.writestr('word_data.docx', word_data) # 将zip文件作为响应返回 return Response(output.getvalue(), mimetype='application/zip')在上面的代码中,excel_data和word_data分别代表了两个文件流的数据。您可以根据实际需求进行修改。该代码会将这两个文件组合成一个zip文件,并将该zip文件作为响应返回给前端。在前端,您可以设置一个链接或按钮,使用户可以点击下载这个zip文件。
解决 无用评论 打赏 举报