export const chooseVideoByPromise = ({
count = 9,
sourceType = ['camera', 'album'],
sizeType = ['original', 'compressed'],
progressList = [],
} = {}) => {
return new Promise((resolve, reject) => {
uni.chooseVideo({
count,
sizeType,
success(res) {
console.log(res, 'rrrr')
resolve(
uploadFile({
imgs: [res.tempFile || res.tempFilePath],
progressList,
isPath: true,
pathType: 'video.mp4',
}),
)
resolve(uploadFile({ imgs: [res.tempFile || res.tempFilePath], progressList }))
},
fail(err) {
reject(err)
},
complete() {},
})
})
}
export const chooseImageByPromise = ({
count = 9,
sourceType = ['camera', 'album'],
sizeType = ['original', 'compressed'],
progressList = [],
} = {}) => {
return new Promise((resolve, reject) => {
uni.chooseImage({
count,
sizeType,
success(res) {
console.log(res, 'sss')
resolve(uploadFile({ imgs: res.tempFiles, progressList }))
},
fail(err) {
reject(err)
},
complete() {},
})
})
}
export const uploadFile = ({
imgs,
data,
progressList = [],
isPath = false,
pathType = 'video',
}) => {
const taskList = []
console.log(imgs, 'sss')
for (let i = 0; i < imgs.length; i++) {
const taskItem = upload({
url: imgs[i],
name: isPath ? pathType : imgs[i].name,
idx: i,
progressList,
formData: data,
isPath,
})
taskList.push(taskItem)
}
return new Promise((resolve, reject) => {
Promise.all(taskList)
.then((urls) => {
console.log(urls, 'urls')
resolve(urls)
})
.catch((err) => {
const errMsg = Object.hasOwnProperty.call(err, 'errMsg') ? err.errMsg : err
reject(errMsg)
})
})
}
export const upload = ({ url, name, data, isPath = false }) => {
console.log(url, 'upload-----urlrurl')
let _this = this
let fileName =
Date.now() +
Math.floor(Math.random() * (100 - 0)) * Math.floor(Math.random() * (100 - 0)) +
name
return new Promise((resolve, reject) => {
VoHttp.apiCreatedCosGet({
businessType: 1,
fileUrl: 1,
}).then((res) => {
var formData = {
key: fileName,
policy: res.data.policy,
success_action_status: 200,
'q-sign-algorithm': 'sha1',
'q-ak': res.data.secretId,
'q-key-time': res.data.KeyTime,
'q-signature': res.data.qSignature,
'x-cos-security-token': res.data.secretToken,
}
formData = { ...data, ...formData }
let options = {
url: devConf.tencentCosUrl,
name: 'file',
formData: formData,
success: (res) => {
resolve({ fileName: fileName, fileNameUrl: devConf.tencentCosUrl + '/' + fileName })
},
fail(err) {
reject(err)
},
}
if (isPath) {
options.filePath = url
} else {
options.file = url
}
uni.uploadFile(options)
})
})
}