参考阿里官方文档
流程:
1:下载web直传demo代码,上传图片获取signature,policy
2:通过小程序上传接口,上传图片(wx.chooseImage获取本地临时文件路径)
/**
* 上传文件到阿里oss
* file: 文件名
* dir: 存放在oss上的相对路径
*/
function uploadOss(file, dir){
return new Promise((resolve, reject)=>{
let key = `${dir}${util.formatTime(new Date().getTime(), 'YY-MM-DD')}/${new Date().getTime()}.png`;
console.log(key)
wx.uploadFile({
url: 'https://xxx.aliyuncs.com', //仅为示例,非真实的接口地址
filePath: file,
name: 'file',
formData: {
name: file,
key: key,
policy: 'xxx',
OSSAccessKeyId: 'xxx',
success_action_status: '200',
signature: 'xxx'
},
success: function(res) {
console.log(res)
resolve(res)
},
fail: function(err){
console.error(err)
reject(err)
}
})
})
}
wx.chooseImage({
sizeType: ['compressed'],
count: count,
success: function(res) {
let file = res.tempFilePaths[0];
Base.uploadOss(file, 'imgs/comment/')
...
}
})
调用uploadOss方法成功进入resolve,但打印出的res结果却不尽人意。
1:是什么原因导致没有返回上传后的文件地址?
2:有什么解决方法?
成功后的新地址要自己拼接: