JavaScript的api限制文件类型后安卓微信浏览器不提示错误信息

使用js版api时,添加了限制文件类型选项后,安卓手机上不报错误。

添加的文件限制后:

filters :{
    max_file_size : '100mb',
    prevent_duplicates: true,
    mime_types:[
        {title : "Video files", extensions : "flv,mpg,mpeg,avi,wmv,mov,asf,rm,rmvb,mkv,m4v,mp4"}
        ],
    },

当选择的不是视频时,在

 'Error': function(up, err, errTip) {
     alert(errTip); 
 },

中并没有aler错误信息。主要出现在安卓手机微信浏览器中。

整体代码为:

var uploader = Qiniu.uploader({
    runtimes: 'html5,flash,html4',      // 上传模式,依次退化
    browse_button: 'p4_upload_videos',         // 上传选择的点选按钮,必需
    uptoken_url: youwineduObj.basePath+that.uptokenUrl,         // Ajax请求uptoken的Url,强烈建议设置(服务端提供)
    get_new_uptoken: false,             // 设置上传文件的时候是否每次都重新获取新的uptoken          
    unique_names: true,              // 默认false,key为文件名。若开启该选项,JS-SDK会为每个文件自动生成key(文件名)
    multi_selection: false,
    domain: that.domain,     // bucket域名,下载资源时用到,必需
    container: 'container',             // 上传区域DOM ID,默认是browser_button的父元素
    max_file_size: '100mb',             // 最大文件体积限制
    flash_swf_url: '/plupload/Moxie.swf',  //引入flash,相对路径
    max_retries: 3,                     // 上传失败最大重试次数
    dragdrop: true,                     // 开启可拖曳上传
    drop_element: 'container',          // 拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
    chunk_size: '4mb',                  // 分块上传时,每块的体积
    auto_start: true,                   // 选择文件后自动上传,若关闭需要自己绑定事件触发上传
    filters :{
        max_file_size : '100mb',
        prevent_duplicates: true,
        mime_types:[
                {title : "Video files", extensions : "flv,mpg,mpeg,avi,wmv,mov,asf,rm,rmvb,mkv,m4v,mp4"}, // 限定flv,mpg,mpeg,avi,wmv,mov,asf,rm,rmvb,mkv,m4v,mp4后缀格式上传
            ],
    },
    init: {
        'FilesAdded': function(up, files) {
            plupload.each(files, function(file) {
                // 文件添加进队列后,处理相关的事情
            });
        },
        'BeforeUpload': function(up, file) {
            console.log(up);
            console.log(file);
               // 每个文件上传前,处理相关的事情
             
        },
        'UploadProgress': function(up, file) {
               // 每个文件上传时,处理相关的事情
             
        },
        'FileUploaded': function(up, file, info) {
            weChatModel.hiddenLoading(0);
            // 查看简单反馈
            var domain = up.getOption('domain');
            var res = JSON.parse(info);
            var sourceLink = domain +"/"+ res.key;// 获取上传成功后的文件的Url
            // 每个文件上传成功,处理相关的事情
        },
        'Error': function(up, err, errTip) {
               //上传出错时,处理相关的事情
               weChatModel.hiddenLoading(0);
               alert(errTip);
               console.log("_______________________");
               console.log(up);
                 console.log("_______________________");
               console.log(err);
                 console.log("_______________________");
               console.log(errTip);
                 console.log("_______________________");
               
        },
        'UploadComplete': function() {
               //队列文件处理完毕后,处理相关的事情
        },
        'Key': function(up, file) {
            // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
            // 该配置必须要在unique_names: false,save_key: false时才生效
            var key = "";
            // do something with key here
            return key
        }
    }
});
阅读 3.1k
2 个回答

建议把上传页面的外网访问地址,已经详细情况描述清楚,并说明手机型号,系统版本,微信版本,提交个工单给七牛。

不会报错是对的,因为七牛js sdk filters 限制上传文件类型,其实就是更改 html标签 input file 中的accept 属性,他会限制你选择文件时看到的文件,但你可以选择其他文件类型。所以不会报错,除非在计算token时候加上限制只能上传视频,才会报错。相信可以看七牛上传策略https://developer.qiniu.com/k...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
七牛云问答
子站问答
访问
宣传栏