定制网站el-upload组件说明汇总,实现上传、点击下载、删除功能等

<el-upload	  class="upload-demo"	  action="/admin/sys-file/upload"      //定制网站文件上传路径	  :headers="headers"       //定制网站请求头配置信息	  :file-list="fileList"         //定制网站上传的文件显示列表, 格式如: [{name: 'food.jpg', url: 'https://xxx.cdn.com/xxx.jpg'}]	  :limit="5"          //定制网站设置最大允许上传个数 	  :on-exceed="handleExceed"   //定制网站文件超出个数限制时的钩子	   accept=".doc,.docx,.xls,.xlsx,.ppt,.pptx"    //定制网站接受上传的文件类型	  :before-upload="beforeUpload"   //上传文件之前的钩子,判断文件大小和格式是否符合      :before-remove="beforeRemove"   //删除文件之前的钩子,若返回 false 或者返回 Promise 且被 reject,则停止删除停止执行handleRemove事件	  :on-remove="handleRemove"   //文件列表移除文件时的钩子	  :on-preview="handlePreview"    //点击文件列表中已上传的文件时的钩子	  :on-success="handleSuccess">	  <el-button size="small" type="primary">上传文件</el-button>	  <div slot="tip" class="el-upload__tip">最多可上传5个,文件大小不超过50MB</div></el-upload>import store from '@/store'data() {   return {   		fileList:[],        headers: {            Authorization: 'Bearer ' + store.getters.access_token,            'TENANT-ID': '1564020210'        }},methods: {	//点击文件列表中已上传文件进行下载    handlePreview(file) {      var a = document.createElement('a');      var event = new MouseEvent('click');      a.download = file.name;      a.href = file.url;      a.dispatchEvent(event);      console.log(file)    },	//上传文件大小和格式校验    beforeUpload(file){        var fileType =file.name.substring(file.name.lastIndexOf('.')+1)        const isFile =            fileType === "doc" ||            fileType === "docx" ||            fileType === "xls" ||            fileType === "xlsx" ||            fileType === "ppt" ||            fileType === "pptx"        if (!isFile) {            this.$message.error("请选择正确的文件格式")            return false        }                const isLt50M = file.size / 1024 / 1024 < 50        if (!isLt50M) {            this.$message.error("上传图片大小不能超过 50MB!")        }        return isLt50M && isFile    },        //文件超出限制个数提示    handleExceed(files, fileList) {      this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);    },          //上传成功    handleSuccess(res, file, fileList){        let fileSize=res.data.fileSize/1024/1024        this.fileList.push({            name: file.name,            fileSize:fileSize,            url:  res.data.bucketName + '/' + res.data.fileName        })        console.info(fileList,"fileList")    },             //文件移除操作    beforeRemove(file, fileList) {      if(this.status=='view'){        this.$message.warning('不允许删除!')        return false      }else{        return true      }    },    //文件移除操作    handleRemove(file, fileList){        this.fileList=fileList    },             //点击文件列表中已上传文件进行下载    handlePreview(file) {      var a = document.createElement('a');      var event = new MouseEvent('click');      a.download = file.name;      a.href = file.url;      a.dispatchEvent(event);      console.log(file)    },}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99

一、限制上传文件个数

可通过设置limit和on-exceed来限制上传文件的个数和定义超出限制时的行为。

二、 限制上传的图片格式和大小

使用 before-upload 限制用户上传的图片格式和大小。

三、点击已上传文件进行下载

实现这个功能主要用到element的on-preview钩子函数

四、查看时,不允许删除文件

主要用到before-remove 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false ,则停止删除,不在执行:on-remove="handleRemove"事件。

五、查看编辑显示后台保存已上传文件

查看和编辑按钮事件如下:
只需将存入后台的数据再放入this.fileList数组中即可。

rowEditForm(row, index){    this.fileList=[]	getFileList(row.id).then(res=>{      var data= res.data.data       if(data!=null&&data.length>0){           for(var i=0;i<data.length;i++){               this.fileList.push({                   name: data[i].name,                   fileSize:data[i].fileSize,                   url:  data[i].url               })           }       }   })}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

原文连接: https://blog.csdn.net/weixin_44770377/article/details/107078454

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发