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
|
|
}
|
|
|
|
|