1. 程式人生 > >plupload 使用案例 及 中文文件

plupload 使用案例 及 中文文件

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

,則開啟,SDK在前端將不對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 = “
http://7q5e43.com2.z0.glb.qiniucdn.com/
” + res.key; //獲取上傳成功後的檔案的Url
var onePic = (“#onePic”).val();  
                var twoPic =
(“#twoPic”).val();
var threePic = (“#threePic”).val();  
                var fourPic =
(“#fourPic”).val();
var fivePic = (“#fivePic”).val();  
                if(onePic==null||onePic==”){
(“#picCount”).val(1);
(“#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使用指南






選擇檔案
開始上傳