- 发布:2023-05-03 10:59
- 更新:2023-06-09 14:26
- 阅读:403
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 13.0.1 (22A400)
HBuilderX类型: 正式
HBuilderX版本号: 3.7.11
手机系统: 全部
手机机型: 荣耀20
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
操作步骤:
uni.chooseVideo({
sourceType: ['camera', 'album'],
compressed: false,
success: (res)=> {
console.log('res video',res)
uni.showLoading()
App.$api.goUpload({
filePath: res.tempFilePath
}).then((res1)=>{
uni.hideLoading()
this.sendVideo(res1)
})
// uni.hideLoading()
}
});
//其中api goUpload 核心代码
const aliyunServerURL = env.uploadImageUrl;//OSS地址,需要https
const accessid = env.OSSAccessKeyId;
const policyBase64 = getPolicyBase64();
const signature = getSignature(policyBase64);//获取签名
console.log('path',aliyunFileKey)
let uploadTask = uni.uploadFile({
url: aliyunServerURL,//开发者服务器 url
filePath: path,//要上传文件资源的路径
name: 'file',//必须填file
formData: {
key: aliyunFileKey,
policy: policyBase64,
OSSAccessKeyId: accessid,
signature: signature,
success_action_status: '200',
},
success: function (res) {
console.log('success up',res);
if (res.statusCode != 200) {
failc(new Error('上传错误:' + JSON.stringify(res)))
return;
}
successc(aliyunServerURL+aliyunFileKey);
},
fail: function (err) {
console.log('failerr',err)
err.wxaddinfo = aliyunServerURL;
failc(err);
},
})
uni.chooseVideo({
sourceType: ['camera', 'album'],
compressed: false,
success: (res)=> {
console.log('res video',res)
uni.showLoading()
App.$api.goUpload({
filePath: res.tempFilePath
}).then((res1)=>{
uni.hideLoading()
this.sendVideo(res1)
})
// uni.hideLoading()
}
});
//其中api goUpload 核心代码
const aliyunServerURL = env.uploadImageUrl;//OSS地址,需要https
const accessid = env.OSSAccessKeyId;
const policyBase64 = getPolicyBase64();
const signature = getSignature(policyBase64);//获取签名
console.log('path',aliyunFileKey)
let uploadTask = uni.uploadFile({
url: aliyunServerURL,//开发者服务器 url
filePath: path,//要上传文件资源的路径
name: 'file',//必须填file
formData: {
key: aliyunFileKey,
policy: policyBase64,
OSSAccessKeyId: accessid,
signature: signature,
success_action_status: '200',
},
success: function (res) {
console.log('success up',res);
if (res.statusCode != 200) {
failc(new Error('上传错误:' + JSON.stringify(res)))
return;
}
successc(aliyunServerURL+aliyunFileKey);
},
fail: function (err) {
console.log('failerr',err)
err.wxaddinfo = aliyunServerURL;
failc(err);
},
})
预期结果:
可以跟 默认的 compressed 为true一样正常上传
可以跟 默认的 compressed 为true一样正常上传
实际结果:
无法正常上传
无法正常上传
bug描述:
uni.chooseVideo 配合 uni.uploadFile 上传视频到oss 在默认的 compressed为true的情况下可以正常上传,设置compressed为false后,安卓和ios都无法正常上传,接口一切正常,只有视频在 compressed设置为false的时候无法上传,其余的情况都能正常上传
2 个回复
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
不压缩,可能你接口有设置限制大小
4***@qq.com
大佬解决了吗 我也遇到这个问题 我还一直以为接口出问题了
5***@qq.com (作者)
我使用的是 阿里云oss,最后使用webview的方式完成视频和大文件的上传
2023-06-23 11:01