element-ui文件上传

本文介绍了一个基于Vue框架的文件上传组件的具体配置及使用方法。该组件支持多种文件格式(doc, docx, pdf)的上传,并通过自定义头部信息进行认证。文章详细解释了如何设置上传动作、限制文件重复上传、处理成功与失败的情况,以及如何管理和展示已上传的文件列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<el-upload ref="uploadDemo"
            class="upload-demo"
            multiple
            accept=".docx,.doc,.pdf"
            :headers="headerData"
            :action="actionUrl"
            :file-list="fileList"
            :before-upload="beforeUpload"
            :on-success="onSuccess"
            :on-error="onError">
            <el-button size="small" type="primary">点击上传</el-button>
            <div slot="tip" class="el-upload__tip">支持上传文件格式:doc .docx .pdf,文件大小不超过2M</div>
          </el-upload>
          
          
data:{
	return{
		photoList: [],
      	photoList2:[],
      	actionUrl: this.$config.VUE_APP_API_HOST_DEFAULT + '/file/upload',
	}
}


computed: {
    /****以下文件上传所用**/
    headerData() {
      return {
        Authorization: getAccessToken(),
        timestamp: String(new Date().getTime()),
        sign: ''
      }
    }
  },
  
  
methods:{  
/*****以下文件上传所用*******/
    beforeUpload(file, fileList) {
      console.log(file, fileList)
      let flag = true
      this.photoList.forEach(item=> {
        if (item.name === file.name) {
          this.$message.error('"'+file.name + '"文件重复');
          flag = false
        }
      })
      return flag
    },
    onSuccess(response, file, fileList) {
      console.log(response, file, fileList)
      if (response && response.code === 200) {
        this.photoList2.unshift({
          id: response.data.fileId,
          name: file.name,
          size: file.size
        })
      } else {
        this.$message.error(response ? response.msg : '文件上传失败');
        if (fileList) {
          fileList.forEach((item,index)=> {
            if (item.response && item.response.code !== 200) {
                fileList.splice(index,1)
            }
          });
        }
      }
      if (fileList.length === this.photoList2.length) {
        this.$refs['uploadDemo'].clearFiles()
        this.photoList = this.photoList2.concat(this.photoList)
        this.photoList2 = []
      }
    },
    onError(e, file, fileList) {
      console.log(e, file, fileList)
      this.$message.error('"'+file.name +'"上传失败');
    },
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值