upload

package module
v1.1.9 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2022 License: MIT Imports: 11 Imported by: 1

README

upload Go license codecov PkgGoDev Go version

处理上传文件,若是图片还可以设置水印。

func(w http.ResponseWriter, r *http.Request) {
    u, err := upload.New("~/uploads/", "2006/01/02/", 1024*1024*10, ".txt", ".jpg", ".png")
    u.SetWatermark(...) // 设置水印图片

    if r.Method="POST"{
        u.Do("files", r) // 执行上传操作
    }
}

安装

go get github.com/issue9/upload

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

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

Constants

This section is empty.

Variables

View Source
var (
	ErrNotAllowExt  = errors.New("不允许的文件上传类型")
	ErrNotAllowSize = errors.New("文件上传大小超过最大设定值")
	ErrNoUploadFile = errors.New("客户端没有上传文件")
)

常用错误类型

Functions

func UniqueFilename added in v1.1.0

func UniqueFilename(filename string) string

UniqueFilename 生成唯一文件名

Types

type Upload

type Upload struct {
	// contains filtered or unexported fields
}

Upload 用于处理文件上传

func New

func New(dir, format string, maxSize int64, exts ...string) (*Upload, error)

New 声明一个 Upload 对象

dir 上传文件的保存目录,若目录不存在,则会尝试创建; format 子目录的格式,只能是时间格式; maxSize 允许上传文件的最大尺寸,单位为 byte; exts 允许的扩展名,若为空,将不允许任何文件上传。

func (*Upload) Dir

func (u *Upload) Dir() string

Dir 获取上传文件的保存目录

func (*Upload) Do

func (u *Upload) Do(field string, r *http.Request) ([]string, error)

Do 执行上传的操作

若是多文件上传,其中某一个文件不符合要求,会中断后续操作, 但是已经处理成功的也会返回给用户,所以可能会出现两个返回参数都不为 nil 的情况。

返回的是相对于 Upload.Dir() 目录的文件名列表。

func (*Upload) Open added in v1.1.6

func (u *Upload) Open(name string) (fs.File, error)

func (*Upload) SetFilename added in v1.1.0

func (u *Upload) SetFilename(f func(filename string) string)

SetFilename 设置文件名的生成方式

func (*Upload) SetWatermark

func (u *Upload) SetWatermark(w *watermark.Watermark)

SetWatermark 设置水印的相关参数

如果 w 为 nil,则表示取消水印

func (*Upload) SetWatermarkFS added in v1.1.8

func (u *Upload) SetWatermarkFS(fs fs.FS, path string, padding int, pos watermark.Pos) error

SetWatermarkFS 设置水印的相关参数

path 为水印文件的路径; padding 为水印在目标不图像上的留白大小; pos 水印的位置。

func (*Upload) SetWatermarkFile

func (u *Upload) SetWatermarkFile(path string, padding int, pos watermark.Pos) error

SetWatermarkFile 设置水印的相关参数

path 为水印文件的路径; padding 为水印在目标不图像上的留白大小; pos 水印的位置。

Directories

Path Synopsis
简单的 upload 包的示例程序,可以一次上传一个或是多个功能!
简单的 upload 包的示例程序,可以一次上传一个或是多个功能!

Jump to

Keyboard shortcuts

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