element中的文件上传

el-upload实现文件上传

element-UI的文件上传
在这里插入图片描述
accept:接受上传的文件类型(thumbnail-mode 模式下此参数无效)
on-success:文件上传成功后调用
limit:限制文件个数
on-exceed:文件超出限制触发的事件
file-list:上传的文件列表
on-preview:点击已经上传文件的事件
before-upload:文件上传之前触发的是啊金
action:当前文件要上传的地址

  <div class="fileUrl">
  	<div class="common-title">附件</div>
  		<el-upload v-if="title !== '查看'" 
  			action="xxxx" 
  			accept=".pdf,.png,.jpg,.zip,.rar" 
  			ref="UploadFile"
  			:on-success="uploadFile" 
			:on-exceed="handleExced" 
			:file-list="fileList" 
			:before-remove="beforeRemove" 
			:on-preview="downloadFile" 
			:before-upload="beforeUpload"
			:limit="10">
			<div class="upload-file-flex">
			<el-button type="primary"><span class="upload-icon"></span>上传附件</el-button>
			</div>
		</el-upload>
			<div v-if="title !== '查看'" class="upload">
                  只支持上传.pdf、.png、.jpg、.zip、.rar格式,最多可添加10个附件,单个附件不超过10M
             </div>
    </div>
  </div>

<script>
	// 文件超出限制的个数给出提示
	handleExced(files, fileList){
		this.$message.warning('最多只能上传10个文件');
	},
	// 文件上传成功
	uploadFile(response, file, fileList){
	// 但有种情况文件显示系统异常,文件列表也存在这条数据(就是以下这种情况)
		if(response.code!=200){
			// 文件上传失败 给出相应的提示,并删除此条数据
			this.$message.warning(response.message)
			this.$refs.UploadFile.uploadFiles.splice(this.$refs.UploadFile.uploadFiles.indexOf(response), 1)
		}else{
			// 我给自己的上传列表定义为了fileList
			 this.fileList = fileList
		}
	}
</script>

在这里插入图片描述

// 接上面代码
// 删除想要删除的数据
 beforeRemove(file, fileList) {
      this.fileList = fileList;
  },
  // 上传代码前进行的操作---限制文件大小,限制文件格式
   beforeUpload(file) {
      const fileSize = file.size / 1024 / 1024; // 将文件大小转换为MB
      if (fileSize > 10) {
        this.$message.warning('文件大小不能超过10M');
        return false; // 阻止文件上传
      }
      const allowedExtensions = [
        '.pdf',
        '.jpg',
        '.zip',
        '.rar',
        '.png',
      ];
      const fileExtension = file.name
        .substring(file.name.lastIndexOf('.'))
        .toLowerCase();
      if (!allowedExtensions.includes(fileExtension)) {
        this.$message.warning('不支持的文件格式');
        return false; // 阻止文件上传
      }
      this.fileState = false
      return true; // 允许文件上传
    },
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值