vue+ELementPlus上传文件判断大小

1、使用elementPlus组件库中upload组件上传文件限制文件大小,需要在该组件的on-change这个API中做处理

 <el-upload
      v-model:file-list="item.fileList"
      @click="whichOne(index)"
      accept=".jpg,.jpeg,.png,.gif,.webp"
      list-type="picture-card"
      :on-preview="handlePictureCardPreview"
      :on-remove="handleRemove"
      :on-change="handleSuccess"
      :on-exceed="warning"
      :limit="imgLength"
      :auto-upload="false"
      >
    <el-icon>
       <Plus />
    </el-icon>
                     
</el-upload>

2、on-change这个Api中

打印形参file看看里面有size这个属性表示文件大小这个数值对应(n*1024*1024    n表示m)

const handleSuccess = (file: UploadFile) => {
    console.log('选中文件',file)
    //限制文件大小
    const maxSize = 30 * 1024 * 1024;//限制30M
	if (file?.size > maxSize) {
		ElMessage.warning('文件大小不得超过30M');
        //清除选中图片
		fileList.value = [];
		return;
	}
   //其他逻辑
}

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
你可以使用 Vue.js 的插件 Vue-Validator 来实现文件上传的校验。首先,你需要在项目中安装 Vue-Validator 插件,然后在需要使用校验的组件中引入该插件。 下面是一个简单的例子,展示了如何使用 Vue-Validator 来校验文件上传: ```html <template> <div> <input type="file" @change="onFileChange" /> <p v-if="errors.length">{{ errors[0] }}</p> </div> </template> <script> import VueValidator from 'vue-validator' export default { name: 'FileUpload', data() { return { file: null, errors: [] } }, mixins: [VueValidator], methods: { onFileChange(event) { this.file = event.target.files[0] this.$validate() } }, validators: { file: (value) => { if (!value) { return '请上传文件' } if (value.size > 1024 * 1024) { return '文件大小不能超过1M' } return true } } } </script> ``` 在上述代码中,我们定义了一个名为 FileUpload 的组件,它包含一个文件上传的输入框和一个用于显示错误信息的段落。在组件的 data 中定义了一个 file 变量和一个用于存储错误信息的 errors 数组。 在组件的 methods 中定义了一个 onFileChange 方法,用于在文件上传的输入框内容变化时更新 file 变量,并且调用 this.$validate() 方法进行校验。 在组件的 validators 中定义了一个 file 校验规则,用于判断文件是否为空和文件大小是否超过1M,并根据校验结果返回相应的错误信息或者 true。 最后,在组件中使用 Vue-Validator 提供的 mixins 属性将 VueValidator 插件混入组件中,这样就可以使用该插件提供的校验方法了。当输入框内容变化时,会触发校验规则并将校验结果存储在 errors 数组中,用于在页面上显示错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Angus-zoe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值