博客 / 詳情

返回

分享easyUpload.js,一款輕量級的web/h5上傳插件,兼容ie9+,支持多文件上傳、多實例上傳、併發上傳,好用易配置

easyUpload.js V4.0.0
一款輕量級、易使用、配置靈活的H5/Web上傳插件,基於file input。採用原生js及css編寫,不依賴其他類庫,兼容IE9及以上,壓縮體積僅有8kb (css+js)。支持多文件上傳,多實例上傳,併發上傳,混合上傳等

實例截圖

👉點我立即測試)

特性

  • 上傳文件類型/數量/大小可配置
  • 上傳前中後文件狀態及上傳進度實時預覽
  • 支持多實例上傳/批量上傳/多類型文件混合上傳
  • 支持併發上傳(多文件同時上傳)
  • 支持自由定義上傳數據格式,如base64等
  • 支持自由配置請求頭等,api保持和原生XMLHttpRequest一致
  • 支持自由配置請求成功狀態
  • css與結構分離,支持自由定製樣式
  • 原生js編寫,不依賴任何類庫

使用説明

  1. html頁面內引入easyUpload.min.js和easy_upload.min.css,簡單配置後即可使用
  2. 生產環境建議使用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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.