flask 接受图片和接受多文件的写法!!!!!!!!!!!完美处理base64和二进制图片格式.

import os
import io
import json
import torch

from PIL import Image
from flask import Flask, jsonify, request, render_template
from flask_cors import CORS
app = Flask(__name__)
CORS(app)  # 解决跨域问题





basedir = os.path.abspath(os.path.dirname(__file__))  # 定义一个根目录 用于保存图片用

import cv2
#http://172.27.118.204:5050
@app.route('/', methods=['GET', 'POST'])
def editorData():
    # 获取图片文件 name = upload
    img = request.files.get('upload')

    # 定义一个图片存放的位置 存放在static下面
    path = basedir

    # 图片名称
    imgName = img.filename

    # 图片path和名称组成图片的保存路径
    file_path = path + '/'+imgName
    print(file_path,22222222)
    a=img.read()


    encoded_string = base64.b64encode(
                    tmp2).decode("utf-8")
    #==========encoded_string 是图片base64编码之后的结果. 如果接口需要b64的图片, 就是这个字符串.

    a=bytearray(a)
    # print(a)
    import numpy as np
    a=cv2.imdecode(np.array(a, dtype='uint8'), cv2.IMREAD_UNCHANGED)  # 从二进制图片数据中读取
    print(a) #=================这个就是图片的二进制图片信息.
    print(a.shape)#===============成功打印到了图片信息.

return a





# postman: https://blog.csdn.net/weixin_43167662/article/details/128663826
@app.route('/upload', methods=['GET', 'POST'])
def upload():
    ff = request.files.getlist('txt')
    print(request.files)

    for f in ff:
        f.save(os.path.join(UPLOAD_ROOT_PATH,  f.filename))
    with open(os.path.join(UPLOAD_ROOT_PATH,  f.filename)  ) as f1:

            tmp=f1.read()
    import glob
    files=glob.glob(UPLOAD_ROOT_PATH+'/*.*')
    os.listdir(UPLOAD_ROOT_PATH)
    fresh(files)


    return jsonify(True)




















if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000)

 

posted on 2023-06-13 16:54  张博的博客  阅读(123)  评论(0编辑  收藏  举报

导航