如何使用Flask实现上传图片功能?

摘要:允许的文件扩展名:定义了允许上传的文件类型为 ['jpg', 'png', 'jpeg', &a
允许的文件扩展名:定义了允许上传的文件类型为 ['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]})