oss上传报错_layui+oss阿里云附件上传回调报错问题

在使用layui+阿里云OSS进行附件上传时遇到回调报错'The callback var is not expecten json'。问题出在callback参数必须为字符串类型,而非int。解决方案是将callback的body参数json化,避免此类问题,同时方便后续添加更多参数。
摘要由CSDN通过智能技术生成

新的广告系统,

采用客户端直接上传到阿里云,阿里云异步调用服务器的模式(Browser.js)

参考地址:https://www.alibabacloud.com/help/zh/doc-detail/32069.htm?spm=a2c63.p38356.b99.702.5d66219fMXc1Ka

流程示意:

碰到问题:

上传图片提示The callback var is not expecten json

sts访问口令与参数配置都正确

删除上传的callback参数也可以上传成功,但是加上此参数就失败。

原因:

是因为callback里的传递参数必须是字符串类型,如果是int类型就会产生此问题。

别看原因简单,排查起来可是费了一番功夫。官方文档里暂时也没有看到对此的描述,只有如图下的一个demo

解决方法

let data_param = {

uid : admin_info.uid, //后台操作uid

app_name: app_name, //业务模块

app_table: app_table, //业务对应的表名

attach_type: attach_type, //附件类型,1图片,2视频

filename: file_name, //文件名称

filesize: file_size, //文件大小

file_type: file_type, //文件类型

file_ext: file_ext, //文件文件后缀

save_name: save_name, //阿里云的保存名称

save_path: save_path, //阿里云的保存路径

all_path : all_path, //阿里云全路径

is_video_banner: ''+is_video_banner, //是否视屏封面的图片存储

};

//all_path表示上传的object name , file表示上传的文件

client.multipartUpload(all_path, file, {

progress: async function (p, checkpoint) {

tempCheckpoint = checkpoint;

},

parallel: options.parallel ? options.parallel : 1,

partSize: options.partSize ? options.partSize : 102400,

checkpoint: tempCheckpoint,

mime: file_mime,

callback: {

url: setter.callback_api_url + '/admin/CommonOss/callbackFile',

body: 'bucket=${bucket}&object=${object}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&param=${x:param}',

contentType: 'application/x-www-form-urlencoded',

customValue:{

'param': JSON.stringify(data_param)

}

},

})

本质就是json化,这样的好处一是规避了上边报错问题,二是以后添加参数的时候,不用body里也配置了,省工。

author:hann

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值