PHP 多圖上傳,圖檔批量上傳插件,webuploader.js,百度檔案上傳插件(案例教程)
使用WebUploader還可以批量上傳檔案、支援縮略圖等等衆多參數選項可設定,以及多個事件方法可調用,你可以随心所欲的定制你要的上傳元件。
使用:
1、導入Css樣式檔案:
2、定義html:
多圖上傳
0%
選擇圖檔 開始上傳
1、準備一個按鈕#filePicker
2、準備一個用來存放添加的檔案資訊清單的容器.queueList
3、準備一個上傳按鈕.uploadBtn
2、javascript部分:
首先建立Web Uploader執行個體:
//執行個體化
uploader =WebUploader.create({
//是否自動上傳(true是,false否)
auto: false,//flash檔案位址
swf: './Uploader.swf',//上傳通路的位址
server: './upload.php',//每次請求附帶的參數
formData: {act: 'ad_image'},//定義選擇檔案的按鈕
pick: {id:'#filePick', label:'添加圖檔'},
//指定托動區
dnd: '#dndArea',//禁掉全局的拖拽功能。這樣不會出現圖檔拖進頁面的時候,把圖檔打開。
disableGlobalDnd: false,//指定監聽paste事件的容器,如果不指定,不啟用此功能。此功能為通過粘貼來添加截屏的圖檔
paste: '#uploader',//指定可以上傳那些類型的圖檔
accept: {
title:'Images',
extensions:'jpg,jpeg,png',
mimeTypes:'image/jpg,image/jpeg,image/png'},
thumb:{
width:110,
height:110,//圖檔品質,隻有type為`image/jpeg`的時候才有效。
quality: 70,//是否允許放大,如果想要生成小圖的時候不失真,此選項應該設定為false.
allowMagnify: false,//是否允許裁剪。
crop: true,//為空的話則保留原有圖檔格式。
//否則強制轉換成指定的類型。
type: 'image/jpeg'},
compress:{
width:1600,
height:1600,//圖檔品質,隻有type為`image/jpeg`的時候才有效。
quality: 90,//是否允許放大,如果想要生成小圖的時候不失真,此選項應該設定為false.
allowMagnify: false,//是否允許裁剪。
crop: false,//是否保留頭部meta資訊。
preserveHeaders: true,//如果發現壓縮後檔案大小比原來還大,則使用原來圖檔
//此屬性可能會影響圖檔自動糾正功能
noCompressIfLarger: false,//機關位元組,如果圖檔大小小于此值,不會采用壓縮。
compressSize: 0,//強制轉換成指定的類型。
type: 'image/jpeg'},//允許在檔案傳輸時提前把下一個檔案準備好 【預設值:false】
prepareNextFile:true,//是否要分片處理大檔案上傳【預設值:false】
//chunked: false,
//分多大一片【預設值:5242880】
//chunkSize: 512 * 1024,
//如果某個分片由于網絡問題出錯,允許自動重傳多少次!【預設值:2】
//chunkRetry:10,
//上傳并發數。允許同時最大上傳程序數【預設值:3】
//threads:3,
//檔案上傳方式,POST或者GET【預設值:'POST'】
//method:'POST',
//最大上傳數量,(驗證檔案總數量, 超出則不允許加入隊列)。
fileNumLimit: 20,//驗證檔案總大小是否超出限制, 超出則不允許加入隊列
fileSizeLimit: 200 * 1024 * 1024,//驗證單個檔案大小是否超出限制, 超出則不允許加入隊列
fileSingleSizeLimit: 50 * 1024 * 1024});
接着監聽fileQueued事件,即當有檔案添加進來的時候,通過uploader.makeThumb來建立圖檔預覽圖
至于事件中用到的方法就不寫出來的,需要研究的可以下載下傳源碼檢視學習!(uploader.makeThumb也是寫在方法裡面去了)
//當檔案被加入隊列以後觸發。
uploader.onFileQueued = function(file) {
fileCount++;
fileSize+=file.size;if (fileCount === 1) {
$placeHolder.addClass('element-invisible');
$statusBar.show();
}
addFile(file);
setState('ready');
updateTotalProgress();
};//上傳過程中....
uploader.onUploadProgress = function(file, percentage) {var $li = $('#' +file.id),
$percent= $li.find('.progress span');
$percent.css('width', percentage * 100 + '%');
percentages[ file.id ][1 ] =percentage;
updateTotalProgress();
};//當檔案被移除隊列後觸發。
uploader.onFileDequeued = function(file) {
fileCount--;
fileSize-=file.size;if (!fileCount) {
setState('pedding');
}
removeFile(file);
updateTotalProgress();
};
最後是上傳狀态提示了,
當檔案上傳過程中, 上傳成功,上傳失敗,上傳完成都分别對應
uploadProgress, uploadSuccess, uploadError, uploadComplete事件。
//檔案上傳成功
uploader.on( 'uploadSuccess', function( file,data ) {var $li = $('#' +file.id),
$percent= $li.find('.success');
$dsf= $('').appendTo($li),
setState('confirm');
});//檔案上傳過程中建立進度條實時顯示。
uploader.on( 'uploadProgress', function( file, percentage ) {
setState('uploading');
});//檔案上傳失敗,顯示上傳出錯
uploader.on( 'uploadError', function( file ) {
setState('finish');
});
uploader.on("uploadAccept", function( file, data){if ( data.success==true) {//通過return false來告訴元件,此檔案上傳有錯。
return true;
}else{return false;
}
});
至于事件中用到的方法就不寫出來的,需要研究的可以下載下傳源碼檢視學習!
2、PHP部分:
date_default_timezone_set("Asia/Shanghai");//1、圖檔檔案上傳處理 (上傳邏輯就自己寫了。)
//2、傳回值//假如這是上傳成功後得到的檔案名
$file = date("Ymd_").rand(1000,9999).'.jpg';
$res=array('success' => true,'file' =>$file
);
die(json_encode($res));?>
PHP 多圖上傳,圖檔批量上傳插件,webuploader.js,百度檔案上傳插件(案例教程)
WebUploader作用:
使用WebUploader還可以批量上傳檔案、支援縮略圖等等衆多參數選項可設定,以及多個事件方法可調用,你可以随心所欲的定制你要的上傳元件。
使用:
1、導入Css樣式檔案:
2、定義html:
1、準備一個按鈕#filePicker
2、準備一個用來存放添加的檔案資訊清單的容器.queueList
3、準備一個上傳按鈕.uploadBtn
2、javascript部分:
首先建立Web Uploader執行個體: