我看基本都是自己写的,貌似不是很麻烦
// 多图上传
// type: 1图片和视频,2图片
// count:最大数量
export function headerUploads(type = 1, count = 1) {
let mediaType = ['image', 'video']
if (type == 2) {
mediaType = ['image']
}
return new Promise((resolve, reject) => {
let UploadList = []
uni.chooseMedia({
// 最多可以选择的图片总数
count,
// 最长视频时间
maxDuration: 30,
mediaType,
success: res => {
//启动上传等待中...
uni.showLoading({
title: '上传中',
});
console.log('上传的是:', res);
let upRes = res
var srcObj = {
type: res.type
}
Promise.all(
upRes.tempFiles.map((item, index) => {
return new Promise((resolve1, reject1) => {
if (upRes.tempFiles[index].duration > 31) {
uni.showToast({
title: "上传视频不能超过30秒!",
icon: 'none',
})
return
}
uni.uploadFile({
// 上传地址
url: BASE_URL + '/api/common/upload',
name: 'file',
filePath: upRes.tempFiles[index]
.tempFilePath,
formData: {
// 'file': res.tempFilePaths[0]
},
header: {
'content-type': 'application/x-www-form-urlencoded',
// "token": uni.getStorageSync('token') || ''
},
success: (resz) => {
console.log('后端返回', (JSON.parse(resz
.data)
.data));
uni.hideLoading()
// 单图
if (type == 2) {
resolve(JSON.parse(resz.data)
.data)
} else {
srcObj.src = JSON.parse(resz
.data)
.data
// resolve(srcObj)
// setTimeout(() => {
UploadList.push(srcObj)
srcObj = {
type: res.type
}
// }, 200)
console.log('循环中', index, upRes
.tempFiles
.length);
resolve1()
}
},
fail: (resz) => {
console.log('失败返回', resz);
uni.hideLoading()
reject()
}
})
});
}))
.then(() => {
console.log('循环后', UploadList);
resolve(UploadList)
})
.catch((error) => {
console.log('循环后', UploadList);
resolve(UploadList)
})
},
complete: compRes => {}
});
})
}
原帖uniapp选中多张图片或者视频(多图上传)
1 个回复
1***@qq.com
我看基本都是自己写的,貌似不是很麻烦
原帖uniapp选中多张图片或者视频(多图上传)