關於vue 中 使用 webuploader 遇到的坑及解決方案,本文以分片上傳為例解說,上傳壓縮包大小為2G左右在項目中實測(一)


首先說一下vue中使用webuploader該如何引入調用

  1. 肯定是安裝操作, 本人用的是淘寶鏡像 cnpm i webuploader -S  如果你沒有安裝淘寶鏡像,則使用 npm i webuploader -S

  2. 引入操作,在具體的vue組件中引入 , import Webuploader from 'webuploader', 這時候需要引入你寫的css樣式來覆蓋webuploader的默認css樣式。需要單獨寫一個css文件然后import引入進來,例如:

      import Webuploader from 'webuploader'

      import ‘@/src/style/webuploader.css’

  3. webuploader中 option的配置

       let option = {

        auto: false,  // 是否開啟自動上傳,默認為false,設置為true,選擇文件之后,無需操作自動上傳

        swf: ‘./Uploader.swf’, // 指定絕對路徑

        server: '/api/upgrade', // 上傳后台服務地址,

        pick: {

          id: '.webuploader', // 指定容器,id中可以是class ,id , dom

          label: innerHTML形式,

          multiple: false // 單文件上傳 ,設置為true則開啟多文件上傳。

        },

        accept: {

          title: "壓縮包",

          extensions: 'zip, ZIP',

          mimeTypes: 'application/zip'

        },

        chunked: true, //開啟分片上傳

             chunkSize: 10 * 1024 * 1024,  // 分片大小

        threads: 10, // 線程數

        methods: 'POST',

        duplicate: false, // 是否允許上傳多個文件

        fileNumLimit: 1, // 限制文件上傳個數

        fileSingleSizeLimit:  1500 * 1024 * 1024, // 限制單個文件上傳的大小

        formData: {

          guid: webuploader.Base.guid() // 給后端的數據

        }

      }

  4. 初始化實例, 此處實例化實例寫在方法中。

    export default {

      data () {

        return {

          webupload: null

        }

      }

    }

    initData () {

      this.webupload = webuploader.create(options) // 實例webuploader

      // 接下來就是webuploder的一系列方法

      this.webuplode.on('beforeFileQueued', file => {

        // 文件加入隊列之前的一系列操作

      })

      // fileQueued => 文件加入隊列時的操作,

       uploadStart => 開始上傳之前的操作

       uploadSuccess => 上傳成功的操作

       uploadError => 上傳失敗的操作

       uploadProgress => 上傳時的進度,文件上傳過程中創建實時顯示的進度條

       uploadComplete => 上傳之后的操作,不管成功失敗都會執行

       uploadFinished => 所有文件上傳結束后的操作

       reset => 重置webuploder實例

       upload => 開始上傳 this.webupload.upload()

    }

   下篇博客寫上代碼


免責聲明!

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



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