抽取公共方法
// 上传图片到后端服务器,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('拍照失败,请重试')
}
})
}