七牛云存储 - JavaScript的api限制文件类型后安卓微信浏览器不提示错误信息
阿神
阿神 2017-04-11 13:05:34
[JavaScript讨论组]

使用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
        }
    }
});
阿神
阿神

闭关修行中......

全部回复(2)
迷茫

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

PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号