首页  >  问答  >  正文

javascript - 微信公号里采用七牛上传视频部分手机不能选择文件

1.微信公号开发设计到视频上传,采用七牛上传视频,发现在微信公众号里打开本地文件时部分手机(华为)不能选择视频文件,部分手机(魅蓝note2)直接调用相册只能选图片。
2.七牛代码如下:

 var uploader = Qiniu.uploader({
            runtimes: 'html5,flash,html4',
            browse_button: _t.options.obj.substring(1),         // 上传选择的点选按钮DOM ID,必需
            container: $(_t.options.obj).parent().attr("id"),   // 上传区域DOM ID,默认是browser_button的父元素
            drop_element: $(_t.options.obj).parent().attr("id"),// 拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
            multi_selection: _t.options.multi_selection,        // 设置一次只能选择一个文件
            flash_swf_url: _t.options.flash_swf_url,            //引入flash,相对路径
            dragdrop: _t.options.dragdrop,                      // 开启可拖曳上传
            chunk_size: _t.options.chunk_size,                  // 分块上传时,每块的体积
            uptoken_url: _t.options.uptoken_url,                // Ajax请求uptoken的Url,强烈建议设置(服务端提供)
            domain: _t.options.domain,                          // bucket域名,下载资源时用到,必需
            get_new_uptoken: false,                             // 设置上传文件的时候是否每次都重新获取新的uptoken
            filters: {
                mime_types: [                                   //只允许上传video
                    {title: "video", extensions: "mp4,mov,avi,wmv,flv"}
                ],
                prevent_duplicates: true                        //不允许选取重复文件
            },
            auto_start: true,                                   // 选择文件后自动上传,若关闭需要自己绑定事件触发上传
            init: {
                'FilesAdded': function (up, files) {
                    _t.options.filesAdded&&_t.options.filesAdded(up,files); // 文件添加进队列后,处理相关的事情
                    plupload.each(files, function (file) {
                        var progress = new FileProgress(file, 'fsUploadProgress');
                        progress.setStatus("等待...");
                        progress.bindUploadCancel(up);

                        _t.options.pluploadEach&&_t.options.pluploadEach(up,file);  //每个文件上传时处理函数
                    });
                },
                'BeforeUpload': function (up, file) {          // 每个文件上传前,处理相关的事情
                    var name=_t.getName(file.name);
                    var fileName = name.fileName;
                    var suffix = name.suffixName;
                    if ((/(mp4)|(mov)|(avi)|(wmv)|(flv)$/i.test(suffix))) {
                        var fileSize = file.size;
                        if (fileSize > _t.options.max_file_size * 1048576) {
                            //alert("视频过大,请联系在线客服寻求帮助");
                            common.topTips.show({
                                class: "videoSize-tips",
                                content: "视频文件过大,无法上传,请重新拍摄"
                            });
                            $('.videoSize-tips').css("z-index","5");
                            setTimeout(function(){
                                $('.videoSize-tips').remove();
                            },3000);
                            uploader.removeFile(uploader.getFile(file.id));
                            return false;
                        } else {

                        }
                    } else {
                        common.popup({
                            text:"格式不支持,请选择mov、mp4、avi、wmv、flv"
                        });
                        //alert("格式不支持,请选择mov、mp4、avi、wmv、flv");
                        uploader.removeFile(uploader.getFile(file.id));
                        return false;
                    }
                    _t.options.beforeUpload&&_t.options.beforeUpload(up,file);   // 每个文件上传前,处理相关的事情
                    var progress = new FileProgress(file, 'fsUploadProgress');
                    var chunk_size = plupload.parseSize(this.getOption('chunk_size'));
                    if (up.runtime === 'html5' && chunk_size) {
                        progress.setChunkProgess(chunk_size);
                    }
                },
                'UploadProgress': function (up, file) {// 每个文件上传时,处理相关的事情
                    var progress = new FileProgress(file, 'fsUploadProgress');
                    var chunk_size = plupload.parseSize(this.getOption('chunk_size'));
                    //progress.setProgress(file.percent + "%", file.speed, chunk_size);

                    _t.options.uploadProgress&&_t.options.uploadProgress(up,file);   // 每个文件上传时,处理相关的事情
                },
                'UploadComplete': function () { //队列文件处理完毕后,处理相关的事情
                    _t.options.uploadComplete&&_t.options.uploadComplete(); //队列文件处理完毕后,处理相关的事情
                },
                'FileUploaded': function (up, file, info) { // 每个文件上传成功后,处理相关的事情
                    var progress = new FileProgress(file, 'fsUploadProgress');
                    progress.setComplete(up, info);

                    if(info){
                        var dataJSON = JSON.parse(info);
                        //t.key=dataJSON.key;
                        //t.persistentId=dataJSON.persistentId;
                        _t.options.fileUploaded&&_t.options.fileUploaded(up,file,dataJSON); // 每个文件上传成功后,处理相关的事情
                    }

                },
                'Error': function (up, err, errTip) {// 每个文件上传失败后,处理相关的事情
                    _t.options.fileUploadError&&_t.options.fileUploadError();
                    var progress = new FileProgress(err.file, 'fsUploadProgress');
                    progress.setError();
                    progress.setStatus(errTip);
                }

            }
        });

3.控制台没有报错,代码没有问题,附几张手机调用本地文件系统图片


给我你的怀抱给我你的怀抱2712 天前726

全部回复(1)我来回复

  • PHPz

    PHPz2017-05-16 13:30:51

    没有人遇见过吗?

    回复
    0
  • 取消回复