小编Jos*_*h.h的帖子

如何使用send_file Flask框架发送zip文件

我在尝试使用 Flask send_file 下载内存 ZIP-FILE 对象时遇到问题。我的 zip 存在于内存中并且充满了文本文档,但是当我尝试使用此代码时,我得到的结果是:它按预期下载,但下载的是一个空的 zip 文件!就像它没有复制任何内容......我不知道如何解决这个问题。

 @app.route('/downloads/', methods=['GET'])
    def download():
        from flask import send_file
        import io
        import zipfile
        import time
        FILEPATH = r"C:\Users\JD\Downloads\trydownload.zip"
        fileobj = io.BytesIO()
        with zipfile.ZipFile(fileobj, 'w') as zip_file:
            zip_info = zipfile.ZipInfo(FILEPATH)
            zip_info.date_time = time.localtime(time.time())[:6]
            zip_info.compress_type = zipfile.ZIP_DEFLATED
            with open(FILEPATH, 'rb') as fd:
                zip_file.writestr(zip_info, fd.read())
        fileobj.seek(0)
    
        return send_file(fileobj, mimetype='zip', as_attachment=True,
                         attachment_filename='%s.zip' % os.path.basename(FILEPATH))
Run Code Online (Sandbox Code Playgroud)

python zip sendfile flask

3
推荐指数
1
解决办法
5923
查看次数

标签 统计

flask ×1

python ×1

sendfile ×1

zip ×1