el-upload上传图片不使用action属性

Posted reround

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了el-upload上传图片不使用action属性相关的知识,希望对你有一定的参考价值。

<el-upload
action="#"
ref="upload"
list-type="picture-card" //照片墙的样式
:on-change="handleChange"
:http-request="httpRequest" :before-upload="beforeAvatarUpload"> <i class="el-icon-plus"></i> </el-upload>

注:不使用action属性就设置为#,然后自定义上传http-request,element文档里有。action属性不能去掉

根据个人需求,我这里只要一张,每次选择就会把前一张删除
handleChange(file, fileList) {
   if (fileList.length > 1) {
       fileList.shift()
   }
},

   这里也可以对上传的图片做一些限制

 

beforeAvatarUpload(file) {
   const isImg = file.size / 1024 / 1024 < 2
   if (!isImg) {
      this.$message.error(‘上传头像图片大小不能超过 2MB!‘)
   }
    
   const isType = file.type === "image/png"
   const isType2 = file.type === "image/jpeg"

   if (!isType && !isType2) {
     this.$message.error(‘上传头像图片格式为png或jpg‘)
   }
   return (isType || isType2) && isImg
},

 

  然后就是自定义的上传方法

httpRequest(data) {
  let _this = this  // 这里要转一下是因为在下面的function里 this的指向发生了变化
  let rd = new FileReader()
  let file = data.file
  rd.readAsDataURL(file)
  rd.onloadend = function(e) {
     _this.addData.icon = this.result
  }
},
(_this.addData.icon 是新增的时候图片的参数字段,this.result就是选中的图片转成的base64

  最后清空el-upload

this.$refs.upload.clearFiles();

 

以上是关于el-upload上传图片不使用action属性的主要内容,如果未能解决你的问题,请参考以下文章

Element中的el-upload使用过程中踩的坑

vue 使用element-ui的el-upload httprequest实现上传文件到后台的功能

el-upload有几种使用情况

el-upload怎么拿到上传的图片的base64格式

elementUI使用el-upload上传文件写法总结及避坑,上传图片/视频到本地/服务器以及回显+删除

vue el-upload上传文件方法 详细解答 action 和 http-request两种方式