允许的文件扩展名:定义了允许上传的文件类型为 ['jpg', 'png', 'jpeg', 'gif']。
POST 请求处理:
从请求中获取上传的文件对象。
如果没有上传文件或文件名为空,则返回错误信息。
检查文件扩展名是否在允许的扩展名列表中,若不在则返回错误信息。
使用 uuid 生成唯一的文件名,避免文件名冲突。
构建保存文件的路径,路径为当前文件所在目录下的 upload/img/ 文件夹,并使用新生成的唯一文件名保存文件。
尝试保存文件到指定路径,成功后返回包含文件信息的成功响应;如果保存过程中发生异常,则返回错误信息。
# 导入类试图
from flask.views import MethodView
import uuid,os
class UploadFile(MethodView):
Allowed_Extensions = ['jpg','png','jpeg','gif']
def post(self):
file = request.files.get('file')
if not file:
return jsonify({'code':Code.ERROR,'msg':code_desc[Code.ERROR]})
file_name = file.filename
if not file_name:
return jsonify({'code':Code.ERROR,'msg':code_desc[Code.ERROR]})
file_extension = file_name.split('.')[-1]
if file_extension not in self.Allowed_Extensions:
return jsonify({'code':Code.ERROR,'msg':code_desc[Code.ERROR]})
new_file_name = ''.join(str(uuid.uuid1()).split('-'))
file_path = os.path.join(os.path.dirname(__file__),'upload/img/'+new_file_name+'.'+file_extension)
try:
file.save(file_path)
return jsonify({'code':Code.OK,'msg':code_desc[Code.OK],'data':{'file_name':file_name,'file_path':file_path}})
except Exception as e:
return jsonify({'code':Code.ERROR,'msg':code_desc[Code.ERROR]})
标签:Code,name,flask,code,file,ERROR,path,上传,图片
From: https://www.cnblogs.com/luckyletop/p/18626523