需求:
uniapp多图上传需要自定义样式,导致uni官方封装好的组件uni-file-picker无法满足需求,只能自己写
知识点:
uni.chooseImage():触发相册选择图片或者相机直接拍照
uni.uploadFile():选择好本地图片资源后使用该api进行上传
代码:
uni.chooseImage({
count: 1, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera'], //从相册选择
success: function (res) {
console.log(res.tempFilePaths);
let img = [];
img.push({name:'files',uri:res.tempFilePaths[0]});
uploadImgs(img);
}
});
uni.uploadFile({
url: baseUrl + 'upload/image',
files:files,
header: {
"Content-Type": "multipart/form-data",
},
success: function(res1) {
console.log(res1)
}
})
有趣的点:
1.多图选择存在兼容性,在官方api无效时,可以选择平台编译puls
2.多图上传后端如果只收到一张图片,可以将图片链接数组处理成files对象数组,切记多图name值不可相同