flask_上传图片
允许的文件扩展名:定义了允许上传的文件类型为 ['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]})
分类:
flask
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现