直接上代码
// 根据src的开头来判断这个是本地图片还会要上传的文件
uploadImg(imgFiles) {
let submitFiles = [] //要上传的文件
let oldImgList = [] //不需要上传的文件
imgFiles.map(item => {
// 要上传的
if (this.strOutset(item.src) < 0) {
submitFiles.push(item)
} else {
oldImgList.push(item.src.split(this.address)[
1])
}
})
console.log('要上传的', submitFiles, '不需要上传的', oldImgList);
return new Promise((resolve, reject) => {
// 先判断有没有要上传的文件和老值
// 有要上传的先上传
if (submitFiles && submitFiles.length) {
uni.uploadFile({
url: `${this.address}/file/fileUploadList`,
files: submitFiles,
name: 'file',
header: {
"Authorization": `Bearer ${uni.getStorageSync('userInfo').token}`
},
success: (res) => {
// 如果有老的提取出路径并拼接
let imgSrc = oldImgList.length ?
`${oldImgList.join(';')};${JSON.parse(res.data).obj}` :
JSON
.parse(res.data).obj
resolve(imgSrc)
}
})
} else {
// 没有要上传的直接提取出路径(可能要删除最后一个;)
resolve(oldImgList ? oldImgList.join(';') : '')
}
})
},
// 判断开头
strOutset(str) {
let res = str ? str.indexOf(this.address) : ''
return res
},