0


Element之el-upload多文件一次性上传

方法一:

页面展示:

Html部分代码:

      <el-upload
        accept=".pdf"
        name="fileName"
        class="upload-demo"
        multiple
        action="https://xxxxxxxxxxxx"
        :headers="headers"
        :file-list="fileList"
        :auto-upload="false"
        :on-preview="handlePreview"
        :on-remove="handleRemove"
        :on-change="handleChange"
      >
        <el-button size="default" icon="el-icon-upload" type="primary" round>上传文件</el-button>
      </el-upload>
      <span slot="footer" class="dialog-footer">
        <el-button size="default" @click="uploadDialog = false">取 消</el-button>
        <el-button type="primary" size="default" :disabled="!fileList.length" @click="submitUpload">确定</el-button>
      </span>

accept用于限制允许上传哪些类型文件name上传的文件字段名 (默认为 file)multiple是否支持多选文件action必选参数,上传的地址headers设置上传的请求头部file-list上传列表auto-upload是否在选取文件后立即进行上传

主要逻辑:

  1. 多选文件,multiple必填

  2. 若需要修改 上传的文件字段名,则设置name

  3. 关闭自动上传,设置auto-upload

  4. 将所有选择的文件,保存到 file-list 绑定的数组属性中

  5. 利用FormData对象,将文件传给后端

Javascript部分代码:

    submitUpload() {
      const formData = new FormData();
      // 额外参数,根据自身情况添加
      formData.append('contract_id', this.uploadParams.contract_id);
      /**
       * 所有选择的文件,放到FormData对象中上传
       * fileName[] 属性名根据自身情况定义
       */
      this.fileList.map((file) => {
        formData.append('fileName[]', file.raw)
      });
      uploadContract(formData).then(response => {
        this.msgSuccess(response.message);
        this.uploadDialog = false;
        this.getContractList();
        this.fileList = [];
      });
    },
标签: vue.js elementui 前端

本文转载自: https://blog.csdn.net/DoubleInjured/article/details/128255983
版权归原作者 Double-Injured 所有, 如有侵权,请联系我们删除。

“Element之el-upload多文件一次性上传”的评论:

还没有评论