关于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()

    }

   下篇博客写上代码

原文地址:https://www.cnblogs.com/0915ty/p/9989472.html