weixin_47065896 2023-06-18 17:08 采纳率: 0%
浏览 46
已结题

flask框架response向前端同时发送多个文件

用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文件。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月27日
  • 创建了问题 6月18日

悬赏问题

  • ¥15 cv2.fisheye.stereoCalibrate报错
  • ¥20 求自动化运维语料数据集
  • ¥30 广告检测流量作弊案例 IDEA运行代码报错 连接不上metastore 检测了环境配置没有问题 请求远程解决加VX问细节问题 不加的不回复
  • ¥15 matlab图像融合代码被嫌弃太简单,求改进。第一步改成直接读取三张图片,不读取文件夹
  • ¥20 微处理器原理与应用(私有偿)
  • ¥50 8051单片机关于ADC0809的应用
  • ¥15 有没有能拿来练练手写完发给我
  • ¥15 禁止修改windows系统时间
  • ¥50 kinect连接win11笔电导致音视频设备消失
  • ¥15 python线性查找题