import os import uuid import shutil from flask import Flask, render_template, request # from werkzeug.datastructures import FileStorage app = Flask(__name__) BASE_DIR = os.path.dirname(os.path.abspath(__file__)) @app.route("/upload", methods=["GET", "POST"]) def upload(): if request.method == "GET": return render_template("upload.html") obj = request.files.get("file") print(obj) # <FileStorage: "test.zip" ("application/x-zip-compressed")> print(obj.filename) # test.zip print(obj.stream) # <tempfile.SpooledTemporaryFile object at 0x0000000004135160> # 检查上传文件的后缀名是否为zip ret_list = obj.filename.rsplit(".", maxsplit=1) if len(ret_list) != 2: return "请上传zip类型压缩文件" if ret_list[1] != "zip": return "请上传zip类型压缩文件" # 1、直接保存文件 obj.save(os.path.join(BASE_DIR, "files", obj.filename)) # 2、保存解压后的文件(原压缩文件不保存) target_dir = os.path.join(BASE_DIR, "files", str(uuid.uuid4())) shutil._unpack_zipfile(obj.stream, target_dir) # 3、先保存压缩文件到本地,再对其进行解压,然后删除压缩文件 return "上传成功" if __name__ == "__main__": app.run()
Flask保存上传的文件
猜你喜欢
转载自www.cnblogs.com/believepd/p/10339394.html
今日推荐
周排行