''' Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git Date: 2023-03-29 20:22:34 LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git LastEditTime: 2023-04-05 15:46:07 FilePath: /luyuetong-data/yolox-pytorch/flask_on.py Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://githaub.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE ''' from flask import Flask, make_response, request, jsonify,send_file from flask_cors import CORS from werkzeug.utils import secure_filename from PIL import Image from yolo import YOLO from predict import PREDICT import os import quanju import requests import urllib.request from io import BytesIO import base64 import io app = Flask(__name__) CORS(app) @app.route('/uploads', methods=['GET','POST']) def uploads(): global filename # 检查是否收到了POST请求 if request.method == 'POST': # 检查是否收到了文件 if 'file' not in request.files: return jsonify({'error': 'No file uploaded.'}), 400 file = request.files['file'] filename = file.read() #此时转换出来的是二进制内容 file_path = filename.decode("utf-8") print(file_path) print(f"file:{file}") # 将blob转换为base64编码的字符串 image_data = base64.b64encode(file.read()).decode('utf-8') # 将base64编码的字符串解码为图片数据 img = Image.open(io.BytesIO(base64.b64decode(image_data))) Image.open(img) # 将bytes类型传递给预测函数进行处理 result = PREDICT(img) # # print(file) # filename = secure_filename(file.filename) # file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) # result = PREDICT() #检查是否选择了文件 if file.filename == '': return jsonify({'error': 'No file selected.'}), 400 # # 检查文件类型是否合法 # # if file and allowed_file(file.filename): # filename = secure_filename(file.filename) #保存文件到本地 # file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) #自定义一个全局变量承接名字(自定义库.变量) # quanju.mingzi = filename return "ok" # 将文件路径传递给模型进行预测 # result = PREDICT(os.path.join(app.config['UPLOAD_FOLDER'], filename)) # return send_file(f'./results/result_{quanju.mingzi}', mimetype='image/jpeg') # return send_file('results/result_{}'.format(quanju.mingzi), mimetype='image/jpeg') # return jsonify({'error': 'Invalid file type.'}), 400 def allowed_file(filename): # 检查文件类型是否合法,这里仅接受jpeg、jpg、png类型的图片文件 return '.' in filename and filename.rsplit('.', 1)[1].lower() in {'jpeg', 'jpg', 'png'} if __name__ == '__main__': # app.config['UPLOAD_FOLDER'] = './uploads' app.config['UPLOAD_FOLDER'] = 'yolox-pytorch/uploads' # app.debug = False app.run(host='10.21.19.104', port=8000)