可拖拽和帶預覽圖的jQuery文件上傳插件ssi-uploader


插件描述:ssi-uploader是一款帶預覽圖並且可以拖拽文件的jQuery ajax文件上傳插件。該文件上傳插件支持AJAX,支持多文件上傳,可控制上的文件格式和文件大小,提供各種回調函數,使用非常方便。

簡要教程

ssi-uploader是一款帶預覽圖並且可以拖拽文件的jQuery ajax文件上傳插件。該文件上傳插件支持AJAX,支持多文件上傳,可控制上的文件格式和文件大小,提供各種回調函數,使用非常方便。

安裝

可以通過bower或npm來安裝ssi-uploader文件上傳插件。

bower install ssi-uploader
npm install ssi-uploader

使用方法

在頁面中引入ssi-uploader.css和ssi-uploader.js文件。

<link rel="stylesheet" href="path/to/ssi-uploader.css"> <script src="path/to/ssi-uploader.js"></script>

HTML結構

最基本的文件上傳HTML結構是使用一個<input>元素,類型為file,並指定一個id。

<input type="file" multiple id="ssi-upload"/>

初始化插件

在頁面DOM元素加載完畢之后,可以通過ssi_uploader方法來初始化該文件上傳插件。

$('#ssi-upload').ssi_uploader({     url: 'path/to/upload.php' });

配置參數

ssi_uploader文件上傳插件的可用配置參數如下:

參數 類型 默認值 描述
url {String} null 接收ajax請求的地址。必須填寫。
data {Object} null 發送請求的額外數據。例如$('input').ssi-uploader({url:'upload.php',data:{"name":"myDragon"}})
ajaxOptions {Object} {type:'DELETE'} {type:'DELETE'}擴展默認的$.ajax函數的選項。
locale {String} "en" 使用的本地化語言。
preview {boolean} true 是否啟用文件預覽圖效果。
maxNumberOfFiles {Number} null 每次允許上傳多少個文件。
maxFileSize {Number} null 允許上傳的最大文件尺寸。
allowed {Array} ['jpg', 'jpeg', 'png', 'bmp', 'gif'] 允許上傳的文件類型。
errorHandler {Object}   用於處理錯誤信息的方法。
beforeUpload {Function}   文件上傳前執行的回調函數。
beforeEachUpload {Function}   每一個單獨的文件上傳前執行的回調函數。
onUpload {Function}   文件上傳后執行的回調函數。
onEachUpload {Function}   每一個單獨的文件上傳后執行的回調函數。
responseValidation {Object||false}   設置錯誤校驗,插件將顯示設置的信息。可以可以是:{ type:"error",result:"Already exists" }或{ error:"Already exists." }。

其中,errorHandler參數帶有一個errorHandler.method函數,該函數錯誤信息和類型。

function(msg,type){alert(msg);}

responseValidation對象的可用屬性有:

  • validationKey:類型{String||Object},設置驗證信息。

  • resultKey:類型{String||Object},設置返回驗證信息。

  • success:類型{String},設置成功信息。

  • error:類型{String},設置錯誤信息。

例如:

//structure 1
$('#ss-uploader').ssi_uploader({   responseValidation:{     validationKey: 'type',     resultKey: 'data',     success: 'success',     error: 'error'   } });   //result  /*   {     type:'error',     data:'Already Exists.'   }  */   //structure 2 $('#ss-uploader').ssi_uploader({   responseValidation:{     validationKey: {       success: 'success',       error: 'error'     },     resultKey: 'validationKey'   } }) //result  /*   {     error:'Already Exists.'   }  */

回調函數

ssi-uploader文件生成插件支持4種回調函數:beforeUpload、beforeEachUpload、onUpload和onEachUpload。

beforeUpload

beforeUpload回調函數在文件上傳前執行的回調函數。

$('input').ssi_uploader({url:'uploadAction.php',beforeUpload:function(){    console.log('文件上傳准備就緒!'); }})   $('input').on('beforeUpload.ssi-uploader',function(){console.log('一個文件准備上傳。')});

beforeEachUpload

beforeEachUpload回調函數在每一個單獨的文件上傳前執行的回調函數。該函數訪問每個文件的信息和xhr對象。如果終止了某個文件,你可以設置一個字符串,提示取消的原因,並顯示的錯誤信息中。

$('input').ssi_uploader({url:'uploadAction.php',beforeEachUpload:function(fileInfo,xhr){    console.log(fileInfo.name+' '+fileInfo.type+' '+fileInfo.size);    if(fileInfo.size > 1){ xhr.abort(); }    return '文件尺寸太大!'; }});   $('input').on('beforeEachUpload.ssi-uploader',function(){console.log('A file is going for uploading.')});

onUpload

beforeUpload回調函數在文件上傳后執行的回調函數。

$('input').ssi_uploader({url:'uploadAction.php',onUpload:function(){    console.log('文件上傳完畢!'); }})   $('input').on('onUpload.ssi-uploader',function(){console.log('文件上傳完畢!')});

onEachUpload

beforeUpload回調函數在每一個單獨的文件上傳后執行的回調函數。

$('input').ssi_uploader({url:'uploadAction.php',onEachUpload:function(fileInfo){    console.log(fileInfo.uploadStatus+' 'fileInfo.name+' '+fileInfo.type+' '+fileInfo.size+' '+fileInfo.uploadStatus); }});   $('input').on('onEachUpload.ssi-uploader',function(){console.log('A file uploaded.')});


———————————————————————————————————————————分割線—————————————————————————————————————————————————————
附件下載:http://files.cnblogs.com/files/Hmin2199/%E5%8F%AF%E6%8B%96%E6%8B%BD%E5%B8%A6%E9%A2%84%E8%A7%881.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM