Element UI 上传组件的使用

  

          <el-upload
          class="upload-demo"
          :action="uploadImgUrl"
          accept=".pdf,.doc,.docx"
          :limit="1"
          :on-remove="handleRemove"
          :before-remove="beforeRemove"
          :on-success="uploadSuccess"
          :on-error="uploadError"
          :on-change="handleChange"
          :on-exceed="handleExceed"
          :before-upload="onBeforeUpload"
          :file-list="fileList"
            :headers="headers"
          >
            <el-button size="small" type="primary">点击上传</el-button>
            <div slot="tip" class="el-upload__tip">只能上传doc/docx/pdf文件,且不超过50MB</div>
          </el-upload >

:headers上传组件并没有走axios,所有没有token,必须用header得到token请求才可以成功

:action="uploadImgUrl"

:action的值是上传附件的服务器接口路径, 需要一个绝对路径

:on-success="uploadSuccess"

:on-success是接口拉取成功后执行的回调函数

 accept=".pdf,.doc,.docx"

accept的值是接收的附件格式,上例中附件只支持.pdf,.doc,.docx这三种格式

 :limit="1"

:limit的值是限制上传附件的个数, 1就是最多能上传一个附件

:before-remove="beforeRemove"

:before-remove删除附件之前的操作,可弹出提示框,是否确认删除。

:on-remove="handleRemove"

:on-remove是点删除x号后的回调函数

:on-error="uploadError"接口拉取失败时的回调函数

 uploadError(){
       this.$message({ message: '附件上传失敗', type: 'error' })
    },

:on-exceed="handleExceed"

 handleExceed(val){
        this.$message({ message: '模板附件最多只能上传一份', type: 'warning' })
    },

:before-upload="onBeforeUpload"上传之前的回调函数,可校验附件的格式和附件大小。

虽然accept有做格式校验,但用户如果返回全选当前文件夹那么其他格式的也会被选中。

    onBeforeUpload(file){
      const isIMAGE = file.type === 'application/msword'||'application/pdf'||'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
       const isLt1M = file.size < 1024*1024*50;
      if (!isIMAGE) {
        this.$message.error('上传文件只能是图片格式!');
      }
      if (!isLt1M) {
        this.$message.error('上传文件大小不能超过 50MB!');
      }
       return isIMAGE && isLt1M;
    },

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值