import zipfile
from bson import ObjectId
from flask import request
from quantum.webapp import app
from ..item.models import Item
@app.route(
rule='/api/item/zip/upload',
methods=["POST"],
endpoint="item_zip_upload"
)
def upload():
"""
上传压缩zip文件
:return: 结果
"""
zip_file = request.files['zip_file']
zip_size = len(zip_file.read())
print("上传压缩包大小:", zip_size)
# 校验zip文件大小,最大不能超过1G
max_zip_size = 1024 * 1024 * 1024
if zip_size > max_zip_size:
return "文件超限"
# 解压
files = zipfile.ZipFile(zip_file)
print(files.namelist())
# 遍历视频文件
video_list = []
for file in files.namelist():
video_list.append(file[0:file.find(".")])
print(file, '源文件大小:', files.getinfo(file).file_size, '压缩后大小:', files.getinfo(file).compress_size,
"字节码大小:", len(files.read(file)))
print("压缩包里文件集合:", video_list)
# 获取上传视频对应的试题
_items = Item.get_collection().find({"_id": {"$in": [ObjectId(_id) for _id in video_list]}})
if _items:
for _item in _items:
print(_item["_id"], _item["digest"])
return "压缩包文件错误"
return "ok"
03-22
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交