file_verification

package
v1.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2021 License: Apache-2.0 Imports: 4 Imported by: 0

README

file_verification

用文件验证器,判断文件的的完整路径跟文件大小是否满足条件, 如果满足条件则返回分割之后的文件信息

  • 验证文件后缀
  • 验证文件大小
  • 自定义验证器

测试用例 file_test

func TestFileOperator(t *testing.T) {
	engine := gin.Default()
	engine.POST("/upload", func(ctx *gin.Context) {
		file, err := ctx.FormFile("file")
		if err != nil {
			ctx.JSON(200, err.Error())
			return
		}
		validate, err := file_validate.NewFileInfo(file.Filename, file.Size, file_validate.Image)
		if err != nil {
			ctx.JSON(200, err.Error())
			return
		}
		ctx.JSON(200, struct {
			Ext      string
			Filename string
			Dir      string
		}{
			Ext:      validate.Ext(),
			Filename: validate.FileName(),
			Dir:      validate.Dir(),
		})
	})
	engine.Run(":11111")
}

Output:

{
    "Ext": ".png",
    "Filename": "kugoo.png",
    "Dir": "./"
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrSuffixVerificationFailed   = errors.New("suffix verification failed")
	ErrCapacityVerificationFailed = errors.New("capacity exceeds the maximum")
)
View Source
var Image = &image{}

Functions

This section is empty.

Types

type FileInfo

type FileInfo interface {
	//返回文件的后缀
	Ext() string
	//返回包含后缀的文件名
	FileName() string
	//返回文件路径
	Dir() string
}

FileInfo 文件信息的接口

func NewFileInfo

func NewFileInfo(filename string, size int64, validators Validator) (FileInfo, error)

type Validator

type Validator interface {
	//返归限制容量大小的数据
	//第一个元素为最小值,第二个元素为最大值
	//比如[1,1024],限制文件必须大于0且小于1025。(用来参与计算的文件大小会向上取整)
	Cap() [2]int64

	//返回允许通过的文件后缀
	//如果返回空切片,则允许任意后缀通过
	Ext() []string
}

Validator 实现文件验证的接口

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL