Documentation
¶
Overview ¶
Package upload 提供文件上传的功能
处理上传文件,若是图片还可以设置水印。
s, err := NewLocalSaver("~/uploads/", "2006/01/02/", nil) u := upload.New(s, 1024*1024*10, ".txt", ".jpg", ".png") u.SetWatermarkFile(...) // 可根据需要设置水印图片 func(w http.ResponseWriter, r *http.Request) { if r.Method="POST"{ u.Do("files", r) // 执行上传操作 } }
Index ¶
- Constants
- func AllowWatermarkExts() []string
- func ErrNoUploadFile() error
- func ErrNotAllowExt() error
- func ErrNotAllowSize() error
- func Filename(dir, s, ext string) string
- type Deleter
- type Saver
- type Upload
- 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 ¶
View Source
const ( None = "" Year = "2006/" Month = "2006/01/" Day = "2006/01/02/" )
为 New 的参数 format 所允许的几种取值
Variables ¶
This section is empty.
Functions ¶
func ErrNoUploadFile ¶
func ErrNoUploadFile() error
func ErrNotAllowExt ¶
func ErrNotAllowExt() error
func ErrNotAllowSize ¶
func ErrNotAllowSize() error
Types ¶
type Deleter ¶ added in v3.3.0
type Deleter interface { Saver // Delete 删除文件 // // filename 由 [Saver.Save] 返回的内容。 Delete(filename string) error }
Deleter 实现了删除功能的 Saver
func NewLocalSaver ¶
func NewLocalSaver(dir, baseURL, format string, f func(dir, filename, ext string) string) (Deleter, error)
NewLocalSaver 实现了一个基于本地文件系统的 Saver 接口
dir 上传文件的保存目录,若目录不存在,则会尝试创建;
baseURL 为上传的文件生成访问地址的前缀;
format 子目录的格式,只能是时间格式,取值只能是 None、Year、Month 和 Day;
f 设置文件名的生成方式,要求文件在同一目录下具有唯一性,其类型如下:
func(dir, filename, ext string) string
dir 为文件夹名称,以 / 结尾,filename 为用户上传的文件名,ext 为 filename 中的扩展名部分, 返回值是 dir + filename 的路径,实现者可能要调整 filename 的值,以保证在 dir 下唯一。 如果为空,则会采用 Filename 作为默认值;
type Saver ¶
type Saver interface { fs.FS // Save 保存用户上传的文件 // // filename 为用户上传时的文件名,不包含扩展名部分; // ext 为 filename 中的扩展名部分; // 返回该文件对应的唯一标记。 Save(file multipart.File, filename string, ext string) (string, error) }
Saver 定义了用于保存上传内容的接口
type Upload ¶
type Upload struct {
// contains filtered or unexported fields
}
Upload 用于处理文件上传
func (*Upload) Do ¶
Do 执行上传的操作
field 表示用于上传的字段名称;
NOTE: 若是多文件上传,其中某一个文件不符合要求,会中断后续操作, 但是已经处理成功的也会返回给用户,所以可能会出现两个返回参数都不为 nil 的情况。
func (*Upload) SetWatermarkFS ¶
SetWatermarkFS 设置水印的相关参数
path 为水印文件的路径; padding 为水印在目标不图像上的留白大小; pos 水印的位置;
Click to show internal directories.
Click to hide internal directories.