Documentation ¶
Overview ¶
Package upload 提供文件上传的功能
处理上传文件,若是图片还可以设置水印。
func(w http.ResponseWriter, r *http.Request) { u, err := upload.New("~/uploads/", 1024*1024*10, ".txt", ".jpg", ".png") u.SetWatermarkFile(...) // 可根据需要设置水印图片 if r.Method="POST"{ u.Do("files", r) // 执行上传操作 } }
Index ¶
- func ErrNoUploadFile() error
- func ErrNotAllowExt() error
- func ErrNotAllowSize() error
- func Filename(dir, s string) string
- type Upload
- func (u *Upload) Dir() string
- func (u *Upload) Do(field string, r *http.Request) ([]string, error)
- func (u *Upload) Open(name string) (fs.File, error)
- func (u *Upload) SetWatermark(w *watermark.Watermark)
- func (u *Upload) SetWatermarkFS(fs fs.FS, path string, padding int, pos watermark.Pos) error
- func (u *Upload) SetWatermarkFile(path string, padding int, pos watermark.Pos) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ErrNoUploadFile ¶
func ErrNoUploadFile() error
func ErrNotAllowExt ¶
func ErrNotAllowExt() error
func ErrNotAllowSize ¶
func ErrNotAllowSize() error
Types ¶
type Upload ¶
type Upload struct {
// contains filtered or unexported fields
}
Upload 用于处理文件上传
func New ¶
func New(dir, format string, maxSize int64, f func(string, string) string, exts ...string) (*Upload, error)
New 声明一个 Upload 对象
dir 上传文件的保存目录,若目录不存在,则会尝试创建;
format 子目录的格式,只能是时间格式;
maxSize 允许上传文件的最大尺寸,单位为 byte;
f 设置文件名的生成方式,要求文件在同一目录下具有唯一性,其类型如下:
func(dir, filename string) string
dir 为文件夹名称,以 / 结尾,filename 为用户上传的文件名, 返回值是 dir + filename 的路径,实现者可能要调整 filename 的值,以保证在 dir 下唯一;
exts 允许的扩展名,若为空,将不允许任何文件上传。
func (*Upload) Do ¶
Do 执行上传的操作
若是多文件上传,其中某一个文件不符合要求,会中断后续操作, 但是已经处理成功的也会返回给用户,所以可能会出现两个返回参数都不为 nil 的情况。
返回的是相对于 Upload.Dir() 目录的文件名列表。
func (*Upload) SetWatermarkFS ¶
SetWatermarkFS 设置水印的相关参数
path 为水印文件的路径; padding 为水印在目标不图像上的留白大小; pos 水印的位置。
Click to show internal directories.
Click to hide internal directories.