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 = [];
      });
    },
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值