golang使用正则表达式判断上传文件格式和大小
判断文件格式
func isImg(name string) bool {
ret,err:=regexp.MatchString(`^(\s|\S)+(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG|bmp|BMP)+$`, name)
if err!=nil {
return false
}
return ret
}
func isVideo(name string) bool {
ret,err:=regexp.MatchString(`^(\s|\S)+(mp4|MP4)+$`, name)
if err!=nil {
return false
}
return ret
}
func isXlsx(name string) bool {
ret,err:=regexp.MatchString(`^(\s|\S)+(xlsx)+$`, name)
if err!=nil {
return false
}
return ret
}
beego判断文件大小
在Controller中直接调用this.getFile,这里获取的大小是b不是kb
f, h, err := this.GetFile("img")
if !isImg(h.Filename) || h.Size>sys_const.UPLOADFILESIZE_IMGE {
return errors.New(fmt.Sprint("只能上传小于",sys_const.MAXUPLOADFILESIZE_IMGE,"M的图片"))
}
系统文件获取文件大小
file, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY, 0644)
defer file.Close()
fi,_:=file.Stat()
if fi.Size() > sys_const.UPLOADFILESIZE_IMGE {
return "", errors.New(fmt.Sprint("只能上传小于",sys_const.MAXUPLOADFILESIZE_IMGE,"M 的图片格式文件"))
}

浙公网安备 33010602011771号