我现在是用wx.chooseImage + wx.uploadFile实现图片直传阿里云oss上。
你想反馈一个 Bug 还是 提一个需求?
应该是个兼容性问题, == 或者是wx.uploadFile的接口禁了请求阿里云oss资源
如果是 Bug:
* Bug 表现是什么?预期表现是什么?
真机上能上传是可以的,能成功上传,但到真机上上传失败,不管是安卓还是苹果
* 如何复现?
编辑器上成功,改传的字段都有:
安卓机上报you have no reight to access this object bacause of bucket acl;
苹果机上报:
* 提供一个最简复现 Demo
wx.chooseImage({
sizeType: [‘original’, ‘compressed’], // 可以指定是原图还是压缩图,默认二者都有
sourceType: [‘album’, ‘camera’], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
that.setData({
files: that.data.files.concat(res.tempFilePaths[0])
});
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
let tempFilePaths = res.tempFilePaths[0];
// 随机生成文件名称,保存文件后缀名
let fileName = that.randomString(10) + that.getSuffix(tempFilePaths);
wx.uploadFile({
url: that.data.ossConfig.host, //接口地址
filePath: tempFilePaths,
name: ‘file’,
formData: {
‘name’: tempFilePaths,
‘key’: that.data.ossConfig.dir + fileName,
‘policy’: that.data.ossConfig.policy,
‘OSSAccessKeyId’: that.data.ossConfig.accessid,
‘success_action_status’: ‘200’,
‘Signature’: that.data.ossConfig.signature,
‘Expires’: that.data.ossConfig.expire,
‘file’: tempFilePaths,
},
success: function (res) {
// console.log(res, ‘res0-----’);
var data = res.data;
that.setData({
filesInfo: that.data.filesInfo.concat({ file_url: that.data.ossConfig.host + ‘/’ + that.data.ossConfig.dir + fileName, file_name: fileName}),
})
console.log(res, ‘success upload!-----’);
},
fail: function (res) {
console.log(res, ‘falis222-----’);
}
})
}
})
如果是需求:
* 你希望有什么能力?
* 你需要这个能力的场景是 ?