You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

56 lines
1.3 KiB

import http from './http.js'
function upload(files, callback) {
const uploadResults = [];
let count = files.length;
files.forEach(file => {
http.get("/oss/get", {}, (res) => {
console.log('get', res);
const sign = res.data;
doUpload(sign, file.path, (result) => {
uploadResults.push(result);
count--;
if (count === 0) {
callback(uploadResults);
}
});
});
});
}
function doUpload(sign, filePath, callback, module = 'upload') {
const key = `${module}/${new Date().getTime()}.png`;
const prk = sign.host + "/" + key;
uni.uploadFile({
url: sign.host,
filePath,
name: 'file',
formData: {
key,
policy: sign.policy,
OSSAccessKeyId: sign.accessKeyId,
signature: sign.signature,
success_action_status: '200'
},
success: (res) => {
console.log('oss', prk);
callback(prk);
},
fail: (err) => {
console.log('oss', err);
callback({ error: err });
}
});
}
// 调用示例
//upload(files, (uploadUrls) => {
// console.log('All upload URLs:', uploadUrls);
//});
export default {
upload: upload
}