O miniaplicativo FastAPI-WeChat faz upload de imagens para o servidor

exigem

A interface do miniaplicativo WeChat para fazer upload de arquivos para fastapi

Código

Mini-programa Frontend-WeChat

Clique em fazer upload, selecione um álbum local ou tire uma foto

Nota: url é uma interface escrita por FastAPI, usada para salvar arquivos no servidor (local aqui)

Importante: preste atenção à nomenclatura do nome: A função deste parâmetro é que o back-end pode usar este parâmetro para obter o conteúdo binário da imagem, portanto este parâmetro deve ser o mesmo entre a frente e o verso.

chooseImg: function () {
    
    
        wx.chooseImage({
    
    
            count: 1,
            sourceType: ['album', 'camera'],
            success(res) {
    
    
                const tempFilePaths = res.tempFilePaths;
                console.log(tempFilePaths[0]);
                wx.uploadFile({
    
    
                    filePath: tempFilePaths[0],
                    url: 'http://127.0.0.1:8000/customer/auth/photo/upload',
                    header: {
    
    
                        'content-type': 'multipart/form-data',
                        'token': wx.getStorageSync('token')
                    },
                    name: "file",
                    success(res) {
    
    
                        console.log(res.data)
                    }
                })
            }
        })
    },

Backend-FastAPI

python -m pip install python-multipart // 上传文件的依赖

from fastapi import APIRouter, Header, File, UploadFile

Aceite que o arquivo de parâmetro seja o mesmo da definição de front-end

@router.post("/customer/auth/photo/upload")
async def upload(file: UploadFile = File(...)):  
    filename = file.filename
    temp = filename.split('.')
    if temp[len(temp)-1]  not in ["png", "jpg"]:    # 不是png,jpg
        return {
    
    "code": 203, "msg": "不支持的图片格式"}
    else:
        try:
            res = await file.read()
            with open(filename, "wb") as f:  # 文件会保存在跟服务器启动目录同一级
                f.write(res)
            return {
    
    "code": 200, "msg": "上传成功"}
        except Exception as e:
            return {
    
    "code": 201, "msg": "上传失败"}

Acho que você gosta

Origin blog.csdn.net/weixin_42100456/article/details/109195713
Recomendado
Clasificación