图片上传阿里云OSS问题,编辑器可以,但真机上都不行
发布于 5 年前 作者 xiuying25 8148 次浏览 来自 问答

我现在是用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-----’);

}

})

}

})

如果是需求:

* 你希望有什么能力?

* 你需要这个能力的场景是 ?

5 回复

最后是成功了的,中间过程很曲折

大兄弟问题解决了吗?

同400问题。  官方说是个人服务器问题…

大兄弟 解决了吗  我这边真机上调试 提示上传文件不存在 在开发工具上也是正常

兄弟你解决那个400的问题了吗

回到顶部