zoukankan      html  css  js  c++  java
  • layui+oss阿里云附件上传回调报错问题

    新的广告系统,

    采用客户端直接上传到阿里云,阿里云异步调用服务器的模式(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
  • 相关阅读:
    CSS 之 样式优先级机制
    SQL Server 之 修改时不允许保存更改
    IP_TOS选项
    eXosip2代码分析
    Ubuntu下关闭apache和mysql的开机启动
    linphone3.4.0代码分析
    XMPP/Jingle Vs SIP/SIMPLE 的简单介绍
    git命令常见问题总结
    正向代理与反向代理的区别
    SIP中OPTIONS方法的用法及示例
  • 原文地址:https://www.cnblogs.com/widgetbox/p/12610815.html
Copyright © 2011-2022 走看看