首页 > 其他分享 >Flask 之 文件上传并解压缩

Flask 之 文件上传并解压缩

时间:2024-07-01 11:42:01浏览次数:14  
标签:__ return zip tar Flask 解压缩 file path 上传

# -*- coding: utf-8 -*-


from flask import Flask, request, render_template_string
import os
import zipfile
import tarfile

app = Flask(__name__)


@app.route('/')
def index():
    return render_template_string('''
   <form action="{{ url_for('upload_file') }}" method="post" enctype="multipart/form-data">
    <input type="file" name="file" required>
    <button type="submit">Upload</button>
</form>
    ''')


@app.route('/upload', methods=['POST'])
def upload_file():
    # 获取上传的文件
    file = request.files['file']

    # 检查文件扩展名
    if file.filename.endswith('.zip'):
        return parse_zip_file(file)
    elif file.filename.endswith('.tar.gz'):
        return parse_tar_gz_file(file)
    else:
        return 'Unsupported file type', 400


def parse_zip_file(file):
    # 保存文件到磁盘
    file_path = os.path.join('uploads', file.filename)
    file.save(file_path)

    # 解压 zip 文件
    with zipfile.ZipFile(file_path, 'r') as zip_ref:
        zip_ref.extractall('uploads')

    # 处理解压后的文件
    # ...

    return 'File uploaded and extracted successfully'


def parse_tar_gz_file(file):
    # 保存文件到磁盘
    file_path = os.path.join('uploads', file.filename)
    file.save(file_path)

    # 解压 tar.gz 文件
    with tarfile.open(file_path, 'r:gz') as tar_ref:
        tar_ref.extractall('uploads')

    # 处理解压后的文件
    # ...

    return 'File uploaded and extracted successfully'


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

标签:__,return,zip,tar,Flask,解压缩,file,path,上传
From: https://www.cnblogs.com/dengz/p/18277746

相关文章

  • C# 压缩和解压缩文件 (System.IO.Compression.ZipFile)
    参考文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.io.compression.zipfile?view=net-8.0&redirectedfrom=MSDNhttps://blog.csdn.net/lvmingzhou/article/details/134161441 操作zip存档及其文件的方法分布在三个类中:ZipFile、ZipArchive和ZipArchiveEntry......
  • 文件压缩和解压缩
    Linux文件压缩和解压缩打包:就是把一堆文件放在一起,并不会节省磁盘空间,仅仅是进行一个归类整理的过程压缩:把一堆文件放在一起,再进行压缩,会节省磁盘空间在Linux中存在如下几种压缩格式.gzip(压缩速度最快).bzip2.xz(压缩效果最好)【1】tar命令制作压缩包(打包压缩)选项......
  • 《每天5分钟用Flask搭建一个管理系统》 第10章:前端集成
    第10章:前端集成10.1前端技术概述前端技术指的是构建Web应用用户界面所使用的技术,包括HTML、CSS和JavaScript。现代Web开发中,前端框架如React、Vue.js和Angular等被广泛使用。10.2AJAX与Flask的集成AJAX(AsynchronousJavaScriptandXML)允许在不重新加载整个页面的情况......
  • 《每天5分钟用Flask搭建一个管理系统》第9章:API设计
    第9章:API设计9.1RESTfulAPI的概念RESTfulAPI是一种基于HTTP协议的网络服务接口设计方法,它使用标准的HTTP方法,如GET、POST、PUT、DELETE等,来执行资源的操作。9.2Flask-RESTful扩展的使用Flask-RESTful是一个Flask扩展,简化了创建RESTfulAPI的过程。示例代码:安装Flas......
  • Hive 实操案例六:统计上传视频最多的用户 Top10 以及他们上传的视频观看次数在前 20 的
    一、数据表结构视频表t_video字段注释描述videoId视频唯一id(String)11位字符串uploader视频上传者(String)上传视频的用户名Stringage视频年龄(int)视频在平台上的整数天category视频类别(Array<String>)上传视频指定的视频分类length视频长度(Int)整形数字标识的视频长度vie......
  • Java大文件上传、分片上传、多文件上传、断点续传、上传文件minio、分片上传minio等解
    上传说明    文件上传花样百出,根据不同场景使用不同方案进行实现尤为必要。通常开发过程中,文件较小,直接将文件转化为字节流上传到服务器,但是文件较大时,用普通的方法上传,显然效果不是很好,当文件上传一半中断再次上传时,发现需要重新开始,这种体验不是很爽,下面介绍几种好一......
  • 0day新接口 紫光电子档案管理系统DesignReportSave文件上传
     0x01阅读须知        技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用......
  • flask 数据库连接池
    数据库连接池flask操作mysqlfromflaskimportFlask,jsonifyimportpymysqlapp=Flask(__name__)app.debug=Trueconn=pymysql.connect(user='root',password="123456",host='127.0.0.1',database='qtest',......
  • flask
    flask介绍小而精,所有web开发需要的东西,借助于第三方集成flask框架:WerkzeugWSGI工具包和Jinja2模板引擎python-dotenv#pipinstallpython-dotenvimportosfromdotenvimportload_dotenvfromdotenvimportdotenv_values##1加载配置文件#必须在根路径下新建一个......
  • flask-session
    flask-session第三方flask-session,可以把session的内容保存在服务端安装并使用pip3installflask-session方式一fromflaskimportFlask,sessionfromflask_session.redisimportRedisSessionInterfaceimportredisapp=Flask(__name__)app.secret_key='adsfasd......