export function UpdataImg(file,callback) {
var that = this
var ImgArr = []
uni.showLoading({
title: '上传中...',
})
for(var i in file){
UpImgResolve(file[i],i).then((res)=>{
ImgArr.push(res.img)
// 当需要上传的文件上传完,返回上传成功的数组
if(ImgArr.length == file.length){
callback(ImgArr)
uni.hideLoading();
}
})
}
}
export function UpImgResolve (file,index){
return new Promise(function(resolve, reject) {
uni.uploadFile({
url: config + "upload/save-img", //后台提供的上传地址
filePath: file,
name: 'file',
formData: {
'file': file
},
success: function(uploadFileRes) {
var date ={
index:index,
img:uploadFileRes.data
}
resolve(date)
},error(res){
uni.hideLoading();
}
});
})
}
export default {
UpdataImg
}
html 页面代码
upload_taps(index) {
let that = this
if (this.CloseList[index].imagesList.length == 0) {
uni.chooseImage({
count: 5,
sourceType: ['album'],
success: (chooseImageRes) => {
const tempFilePaths = chooseImageRes.tempFilePaths;
this.CloseList[index].imgesUpDtaList = chooseImageRes.tempFilePaths
that.UpListTwo(index, this.CloseList[index].imgesUpDtaList)
}
});
} else {
var count = 5 - Number(this.CloseList[index].imagesList.length)
uni.chooseImage({
count: count,
sourceType: ['album'],
success: (chooseImageRes) => {
const tempFilePaths = chooseImageRes.tempFilePaths;
this.CloseList[index].imgesUpDtaList = chooseImageRes.tempFilePaths
that.UpListTwo(index, this.CloseList[index].imgesUpDtaList)
}
});
}
},
// 上传
// 上传
UpListTwo(index, file) {
var that = this
that.$utils.UpdataImg(file, this.id, (res) => {
if (this.CloseList[index].imagesList.length <= 5) {
this.CloseList[index].imagesList = this.CloseList[index].imagesList.concat(res)
}
})
},
该代码段展示了在uni-app中实现图片上传的功能,包括选择图片、上传到服务器并更新图片列表。通过`uni.showLoading`和`uni.hideLoading`来显示和隐藏加载提示,`uni.uploadFile`用于上传文件,`UpdataImg`和`UpImgResolve`两个导出函数协同完成批量图片上传,成功后将图片URL添加到列表。
157

被折叠的 条评论
为什么被折叠?



