使用el-upload上传文件时,对文件名进行校验

概要

通常在日常项目开发过程中,会用到文件上传的功能,此时,会要求什么样的文件名可以上传什么样的不能上传,虽然说后端也可以做校验,如果在多文件上传的时候,会出现客户多次上传的文件因为一个文件名称的不规范导致所有的文件都无法上传,因此在上传的时候,需要对上传文件的文件名进行校验并提示。

例如:

使用before-upload钩子函数

注意:如果要使用upload钩子函数时,需要查看项目中有没要用到:auto-upload这个属性,如果有,此时使用before-upload是不会生效的,需要在on-change事件中看到上传的文件,建议在before-upload对文件进行校验。

实现逻辑

//  以下代码是上传文件前对文件名称的校验。
const beforeFileUpload = async (rawFile) => {
		const fileName = rawFile.name;
		const regex = /^\[(.+)\](.+)-(.+)\s+(.+)/; 
	// 这里的正则可以根据自己项目中的对文件命名的规范来给
	if(!regex.test(fileName)) {
		if(!errorMessageDiaplayed.value) {
			global.$message.error('错误提示')
		}
		return false			                   
	}
	return true
}

调用函数关联正则

提示:这里是关键性代码的细节

const FileChange: UploadProps['onChange'] = async (uploadFile: any) => {
	errorMessageDisplayed.value = false;
	const isValidFile = await beforeFileUpload(uploadFile.raw)
	if(isValidFile) {
		fileList.value.push(uploadFile.raw)
		fileList.value = fileList.value && fileList.value.map((item : any) => {
	if(item.raw) {
		return item.raw
	} else {
		return item
})
emit('fileUp',fileList.value)
}

小结

提示:需要注意的就是文件在改变的时候需要等异步文件处理的函数执行完在进行

例如:

以上就是对上传文件的文件名校验规范的代码,欢迎借鉴。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值