uniapp 微信小程序上传二进制流文件

抽取公共方法

// 上传图片到后端服务器,uploadUrl:上传图片的接口地址,name:上传图片的字段名,filePath:上传图片的本地路径
export const fileUpload = (uploadUrl, name, filePath) => {
  return new Promise((resolve, reject) => {
    uni.uploadFile({
      url: `${baseUrl}${uploadUrl}`, //上传图片api  (后端上传图片接口)
      filePath,
      name,  // 关键!!!要与后端的字段名一致后端才可以成功获取二进制文件
      method: 'post',
      header: {
        Authorization: uni.getStorageSync('token'),
      },
      success: (res) => {
        const group = JSON.parse(res.data)
        console.log('上传成功:', group)
        uni.showToast({
          title: "上传成功",
          icon: "none",
          duration: 2000
        })
        resolve(group); // 返回处理后数据
      },
      fail: (e) => {
        uni.showToast({
          title: "上传失败",
          icon: "none",
          duration: 2000
        })
        reject(e)
      }
    });
  })
}

如何使用?、

  • 搭配uni.chooseImage使用,从相册或者牌照图片
  • uni.compressImage 压缩文件,减小图片文件大小
const scanPlate = () => {
  // 调用微信OCR识别车牌
  uni.chooseImage({
    count: 1,
    sizeType: ['compressed'],
    sourceType: ['camera', 'album'], // 支持相机拍照和从相册选择
    success: async (res) => {
      uni.compressImage({
        src: res.tempFilePaths[0], // 要压缩的图片路径
        quality: 80, // 压缩质量,0-100,数值越小压缩率越高
        success: res => {
          fileUpload('/ocr/carNumber', 'img', res.tempFilePath).then(res => {
            console.log('OCR识别结果:', res)
          })
        }
      })
    },
    fail: (error) => {
      showErr('拍照失败,请重试')
    }
  })
}
posted @ 2025-08-14 11:59  DL·Coder  阅读(110)  评论(0)    收藏  举报