美文网首页
Python flask框架中实现附件打包下载

Python flask框架中实现附件打包下载

作者: 微凉_半夏 | 来源:发表于2023-03-19 15:17 被阅读0次
一.将目录文件夹内的文件打包成zip格式下载, 不包含文件所在的文件夹
import os
from flask import Flask, send_file
import zipfile

app = Flask(__name__)

@app.route('/download')
def download():
    # 指定要打包的目录
    folder = 'path/to/folder'

    # 创建一个空的内存文件,用于存储压缩文件
    in_memory_zip = BytesIO()

    # 创建一个ZipFile对象,将压缩文件写入内存文件
    with zipfile.ZipFile(in_memory_zip, 'w', compression=zipfile.ZIP_DEFLATED) as zf:
        # 遍历目录下的所有文件,并将文件添加到zip文件中
        for root, dirs, files in os.walk(folder):
            for file in files:
                file_path = os.path.join(root, file)
                # 将文件添加到zip文件中,并指定压缩文件中的文件名为文件相对路径
                zf.write(file_path, arcname=file)

    # 将内存文件指针移动到文件开头
    in_memory_zip.seek(0)

    # 返回压缩文件,指定文件名为download.zip
    return send_file(in_memory_zip, attachment_filename='download.zip', as_attachment=True)


二.将目录文件夹内的文件打包成zip格式下载, 包含文件所在的文件夹

这里会把文件所在的文件夹也会一起压缩

from flask import Flask, request, send_file
from io import BytesIO
import zipfile

app = Flask(__name__)

@app.route('/download')
def download():
    # 获取要下载的文件名列表
    filenames = ["/path/files/test.png", "/root/user/name.docx"]

    # 创建一个 BytesIO 对象,用于在内存中生成压缩文件
    in_memory_zip = BytesIO()

    # 将多个文件打包成压缩文件
    with zipfile.ZipFile(in_memory_zip, 'w', compression=zipfile.ZIP_DEFLATED) as zf:
        for filename in filenames:
            zf.write(filename)

    # 将 BytesIO 对象指针移到开头
    in_memory_zip.seek(0)

    # 返回压缩文件作为响应体,设置 Content-Disposition 头部以便浏览器自动下载该文件
    return send_file(in_memory_zip, attachment_filename='files.zip', as_attachment=True)

if __name__ == '__main__':
    app.run()

相关文章

  • Python学习

    python-flask框架学习(一) Flask是由python实现的一个web微框架,让我们可以使用Pytho...

  • Flask 基本流程

    Flask 基本流程 一、Flask简介 Flask是一个基于Python实现的web开发'微'框架。 Flask...

  • Flask初探一(Flask 各参数的应用)

    Flask简介 Flask是什么 Flask 是一个 Python 实现的 Web 开发微框架,轻量级Web 开发...

  • Flask之基本流程

    一、Flask简介 Flask是一个基于python实现的web开发"微"框架。 Flask和Django一样,也...

  • 01-Flask之基本流程

    一、Flask简介 Flask是一个基于python实现的web开发"微"框架。Flask和Django一样,也是...

  • 01-Flask之基本流程

    一、Flask简介 Flask是一个基于python实现的web开发"微"框架。Flask和Django一样,也是...

  • 01-Flask之基本流程

    一、Flask简介 Flask是一个基于python实现的web开发"微"框架。Flask和Django一样,也是...

  • 01-Flask之基本流程

    一、Flask简介 Flask是一个基于python实现的web开发"微"框架。Flask和Django一样,也是...

  • python之flask快速实现接口服务

    flask是Python编写的web微框架,我们可以通过flask快速实现web服务,下面来看看如何利用flask...

  • Flask-day01

    一、Flask简介 Flask是一个基于python实现的web开发"微"框架。Flask和Django一样,也是...

网友评论

      本文标题:Python flask框架中实现附件打包下载

      本文链接:https://www.haomeiwen.com/subject/feryrdtx.html