easyUpload.js V4.0.0
一款輕量級、易使用、配置靈活的H5/Web上傳插件,基於file input。採用原生js及css編寫,不依賴其他類庫,兼容IE9及以上,壓縮體積僅有8kb (css+js)。支持多文件上傳,多實例上傳,併發上傳,混合上傳等
👉點我立即測試)
特性
- 上傳文件類型/數量/大小可配置
- 上傳前中後文件狀態及上傳進度實時預覽
- 支持多實例上傳/批量上傳/多類型文件混合上傳
- 支持併發上傳(多文件同時上傳)
- 支持自由定義上傳數據格式,如base64等
- 支持自由配置請求頭等,api保持和原生XMLHttpRequest一致
- 支持自由配置請求成功狀態
- css與結構分離,支持自由定製樣式
- 原生js編寫,不依賴任何類庫
使用説明
- html頁面內引入easyUpload.min.js和easy_upload.min.css,簡單配置後即可使用
- 生產環境建議使用dist文件夾內壓縮代碼,二次開發測試可參考src文件夾內源代碼
配置説明
// 初始化easyUpload,填寫必要參數"節點id"和"url"即可
var easy = new EasyUpload('#easy1', {
url: 'https://jsonplaceholder.typicode.com/posts/',
naxSize: 5,
maxCount: 3,
// readAs: 'BinaryString'
});
// 本次導入文件數>限定數maxCount時,觸發onMax事件
easy.onMax = function (fs) {
// in為本次導入文件數,max為限定文件數
console.log('in:' + fs.in, 'max:' + fs.max);
}
// 設置XMLHttpRequest實例的請求頭
easy.setHeader = function (xhr) {
// 如下:
// xhr.setRequestHeader('Content-Type', 'application/json');
}
// 自定義上傳文件數據格式,未定義此方法時以參數readAs定義格式上傳(默認base64格式)
easy.setData = function (file) {
// flie 為文件信息對象,file.source為原始文件對象
// console.log(file)
// 測試用
return 'abcdefg';
}
// setFLag用來標識文件成功上傳的狀態
easy.setFlag = function () {
// return一個結果為true或者false的表達式,用來判斷文件是否成功上傳到服務器,如下:
// return this.status == 200;
}
// 文件上傳過程中會觸發onProgress事件
easy.onProgress = function (p) {
// p是上傳進度百分比
console.log('上傳中', p)
}
// 每完成一個文件上傳會觸發onLoad事件
easy.onLoad = function (_this) {
// _this是當前XMLHttpRequest實例
console.log('上傳完一個', _this)
}
// 每失敗一個文件上傳會觸發onError事件
easy.onError = function (_this) {
// _this是當前XMLHttpRequest實例
console.log('上傳失敗一個', _this)
}
// 文件隊列(所有文件)上傳完成後會觸發onEnd事件
easy.onEnd = function () {
// this是本次new出來的EasyUpload實例對象,this包含本實例的配置、屬性、方法等
console.log('上傳完成', this)
}
參數説明
// 以下為默認配置,重新配置後將覆蓋
var oConf = {
accept: '.jpg,.png,.pdf,.doc,.docx', // 允許導入文件類型
btnS: '導入文件', // 導入文件按鈕展示文字
btnU: '上傳', // 上傳文件按鈕展示文字
btnD: '刪除', // 刪除文件按鈕展示文字
btnC: '終止', // 終止上傳按鈕展示文字
maxCount: 3, // 允許單次導入文件數量
naxSize: 3, // 允許單個文件最大體積,單位M
multiple: true, // 是否允許一次導入多個文件
responseType: 'text', // 設置XMLHttpRequest響應數據格式
timeout: 0, // 設置XMLHttpRequest求超時時間
url: '', // 文件上傳地址
withCredentials: true, // 設置跨域請求是否提供憑據信息,
readAs: 'DataURL' // 默認設置讀取及長傳文件為DataURL即base64格式。未定義setData方法情況下,以此字段定義數據格式上傳
};
插件作者郵箱及Github
@email: funnyque@163.com
@email: https://github.com/funnyque/easyUpload.js