1.微信公號開發(fā)設(shè)計到視頻上傳,採用七牛上傳視頻,發(fā)現(xiàn)在微信公眾號裡打開本地文件時部分手機(華為)不能選擇視頻文件,部分手機(魅藍note2)直接調(diào)用相冊只能選圖片。
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"), // 上傳區(qū)域DOM ID,默認是browser_button的父元素
drop_element: $(_t.options.obj).parent().attr("id"),// 拖曳上傳區(qū)域元素的ID,拖曳文件或文件夾后可觸發(fā)上傳
multi_selection: _t.options.multi_selection, // 設(shè)置一次只能選擇一個文件
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,強烈建議設(shè)置(服務(wù)端提供)
domain: _t.options.domain, // bucket域名,下載資源時用到,必需
get_new_uptoken: false, // 設(shè)置上傳文件的時候是否每次都重新獲取新的uptoken
filters: {
mime_types: [ //只允許上傳video
{title: "video", extensions: "mp4,mov,avi,wmv,flv"}
],
prevent_duplicates: true //不允許選取重復(fù)文件
},
auto_start: true, // 選擇文件后自動上傳,若關(guān)閉需要自己綁定事件觸發(fā)上傳
init: {
'FilesAdded': function (up, files) {
_t.options.filesAdded&&_t.options.filesAdded(up,files); // 文件添加進隊列后,處理相關(guān)的事情
plupload.each(files, function (file) {
var progress = new FileProgress(file, 'fsUploadProgress');
progress.setStatus("等待...");
progress.bindUploadCancel(up);
_t.options.pluploadEach&&_t.options.pluploadEach(up,file); //每個文件上傳時處理函數(shù)
});
},
'BeforeUpload': function (up, file) { // 每個文件上傳前,處理相關(guān)的事情
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("視頻過大,請聯(lián)系在線客服尋求幫助");
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); // 每個文件上傳前,處理相關(guān)的事情
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) {// 每個文件上傳時,處理相關(guān)的事情
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); // 每個文件上傳時,處理相關(guān)的事情
},
'UploadComplete': function () { //隊列文件處理完畢后,處理相關(guān)的事情
_t.options.uploadComplete&&_t.options.uploadComplete(); //隊列文件處理完畢后,處理相關(guān)的事情
},
'FileUploaded': function (up, file, info) { // 每個文件上傳成功后,處理相關(guān)的事情
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); // 每個文件上傳成功后,處理相關(guān)的事情
}
},
'Error': function (up, err, errTip) {// 每個文件上傳失敗后,處理相關(guān)的事情
_t.options.fileUploadError&&_t.options.fileUploadError();
var progress = new FileProgress(err.file, 'fsUploadProgress');
progress.setError();
progress.setStatus(errTip);
}
}
});
3.控制臺沒有報錯,程式碼沒有問題,附幾張手機呼叫本機檔案系統(tǒng)圖片