plupload 使用案例 及 中文文件
阿新 • • 發佈:2019-01-02
1 js:
$(function() {
var uploader = Qiniu.uploader({
runtimes: ‘html5,flash,html4’,
browse_button: ‘pickfiles’,
drop_element: ‘container’,
chunk_size: ‘4mb’,
unique_names: true, // 預設 false,key為檔名。若開啟該選項,SDK會為每個檔案自動生成key(檔名)
save_key: true, // 預設 false。若在服務端生成uptoken的上傳策略中指定了 sava_key
uptoken_url: “../../service/upload/getQiNiuUoken”,
domain: “http://7q5e43.com2.z0.glb.qiniun.com“,
container: ‘container’, //上傳區域DOM ID,預設是browser_button的父元素,
max_file_size: ‘15mb’, //最大檔案體積限制
flash_swf_url: ‘qiniujs/plupload/Moxie.swf’, //引入flash,相對路徑
max_retries: 3, //上傳失敗最大重試次數
dragdrop: true, //開啟可拖曳上傳
auto_start: true,//選擇檔案後自動上傳,若關閉需要自己繫結事件觸發上傳
init: {
‘FilesAdded’: function(up, files) {
plupload.each(files, function(file) {
// 檔案新增進佇列後,處理相關的事情
var progress = new FileProgress(file, ‘fsUploadProgress’);
progress.setStatus(“等待…”);
progress.bindUploadCancel(up);
});
},
‘BeforeUpload’: function(up, file) {
// 每個檔案上傳前,處理相關的事情
},
‘UploadProgress’: function(up, file) {
// 每個檔案上傳時,處理相關的事情
},
‘UploadComplete’: function() {
//佇列檔案處理完畢後,處理相關的事情
$.messager.alert(‘提示’,’上傳成功!’);
},
‘FileUploaded’: function(up, file, info) {
// 每個檔案上傳成功後,處理相關的事情
// 其中 info 是檔案上傳成功後,服務端返回的json,形式如
//{ hash=”Ft976dxPRnGHeDrKaMfOmOTfIXLQ”, key=”Ft976dxPRnGHeDrKaMfOmOTfIXLQ”}
var res = JSON.parse(info);
var sourceLink = “
var onePic = (“#onePic”).val();
var twoPic =(“#twoPic”).val();
var threePic = (“#threePic”).val();
var fourPic =(“#fourPic”).val();
var fivePic = (“#fivePic”).val();
if(onePic==null||onePic==”){
(“#onePic”).val(sourceLink);(“#img1”).html(‘‘);
}else if(twoPic==null||twoPic==”){
(“#picCount”).val(2);(“#twoPic”).val(sourceLink);
$(“#img2”).html(‘‘);
}else if(threePic==null||threePic==”){
(“#picCount”).val(3);(“#threePic”).val(sourceLink);
$(“#img3”).html(‘‘);
}else if(fourPic==null||fourPic==”){
(“#picCount”).val(4);(“#fourPic”).val(sourceLink);
$(“#img4”).html(‘‘);
}else if(fivePic==null||fivePic==”){
(“#picCount”).val(5);(“#fivePic”).val(sourceLink);
$(“#img5”).html(‘‘);
}
},
‘Error’: function(up, err, errTip) {
alert(err);
},
‘Key’: function(up, file) {
// 若想在前端對每個檔案的key進行個性化處理,可以配置該函式
// 該配置必須要在 unique_names: false , save_key: false 時才生效
var key = “”;
// do something with key here
return key;
}
}
});
//繫結各種事件,並在事件監聽函式中做你想做的事
uploader.bind('FilesAdded', function(uploader,files) {
//每個事件監聽函式都會傳入一些很有用的引數,
alert("FilesAdded");
var picCount = $("#picCount").val();
if(picCount==null||picCount==''){
picCount = 0;
}
var cs = 5 - picCount ;
if(files.length > cs){
$.messager.alert('提示','已超出圖片最多上傳張數!');
uploader.splice(0, files.length);//從上傳佇列中移除一部分檔案
uploader.stop();
}
});
});
Plupload的使用方法也與SWFUpload非常類似,可以分為以下幾步:
1、引入js檔案
2、例項化一個plupload物件,傳入一個配置引數物件進行各方面的配置。
3、呼叫plupload例項物件的init()方法進行初始化
4、在plupload例項物件上註冊各種你需要的事件。plupload從選取檔案到檔案上傳完成這個過程中,會觸發很多事件。我們可以通過這些事件來跟plupload進行互動。
5、實現你自己所註冊的那些事件的監聽函式,利用這些監聽函式來進行更新UI、提示上傳進度等工作。
下面用一段程式碼來說明Plupload的使用方法。
首先看下我的目錄結構
目錄結構
index.html的程式碼如下:
複製程式碼
Plupload使用指南
選擇檔案
開始上傳