准备
- oss配置Bucket跨域访问(必须不然报403)
- 小程序配置合法域名(先开发者工具点不校验合法域名)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e88acd6d5a20aef3c228832bffce6ade.png)
- 后台提供一个接口,接口返回结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5af543702984f6e525d3a5d571bed73b.png)
import store from '../store/index.js'
import uuidv1 from 'uuid/v1'
export const uploadImage = (num, callback) => {
uni.chooseImage({
count: num,
success: (res) => {
uni.showLoading({
title: '上传中...'
});
let tempFilePaths = res.tempFilePaths
get("/qrupload/getOssSignature",{}).then(res=>{
if(res.success){
var acc=JSON.parse(res.result.ossSignature)
console.log(acc)
var key=uuidv1();
uni.uploadFile({
url: acc.host,
filePath: tempFilePaths[0],
name: 'file',
formData: {
key:acc.dir+key,
policy:acc.policy,
OSSAccessKeyId:acc.accessid,
success_action_status:"200",
Signature:acc.signature
},
success: (uploadFileRes) => {
console.log(uploadFileRes)
if(uploadFileRes.statusCode==200){
console.log(tempFilePaths)
callback(tempFilePaths[0]);
}
if(uploadFileRes.statusCode==413){
uni.showToast({
title: '图片过大',
icon: 'none',
duration: 4000
});
}
},
fail: (error) => {
if (error && error.response) {
showError(error.response);
}
},
complete: () => {
setTimeout(function() {
uni.hideLoading();
}, 250);
},
});
}
})
}
});
}