文件管理

简介

file 包是一个用于处理文件上传和图片水印的 Go 语言工具包。它提供了简单而强大的 API,用于管理文件上传、限制文件类型和大小,以及为图片添加水印。file 包提供了一种简单而灵活的方式来处理文件上传和图片水印。通过合理配置和使用,它可以帮助您快速实现安全可靠的文件处理功能。

主要功能

  1. 文件上传

  2. 文件类型和大小限制

  3. 自动生成唯一文件名

  4. 图片水印

安装

使用以下命令安装 file 包:

go get github.com/sagoo-cloud/nexframe

使用方法

1. 创建 FileHandler

首先,需要创建一个 FileHandler 实例来处理文件上传和水印功能。

2. 处理文件上传

在 HTTP 处理函数中使用 Upload 方法来处理文件上传:

3. 添加水印功能

如果需要为上传的图片添加水印,可以在创建 FileHandler 时配置水印:

4. 自定义文件命名

file 包默认使用基于时间戳和随机字符串的文件命名策略。如果需要自定义命名策略,可以在创建 FileHandler 时提供自定义的 generateFilename 函数:

配置选项

UploadConfig

  • Dir: 文件上传的目标目录

  • Format: 子目录的日期格式,例如 "2006/01/02/"

  • MaxSize: 允许上传的最大文件大小(字节)

  • AllowedExt: 允许上传的文件扩展名列表

  • Watermark: 水印配置(可选)

  • GenerateFilename: 自定义文件命名函数(可选)

WatermarkConfig

  • Path: 水印图片的路径

  • Padding: 水印与图片边缘的间距(像素)

  • Pos: 水印位置,可选值:

    • file.TopLeft

    • file.TopRight

    • file.BottomLeft

    • file.BottomRight

    • file.Center

注意事项

  1. 确保上传目录具有适当的写入权限。

  2. 合理设置 MaxSize 以防止过大的文件上传。

  3. 仅允许安全的文件类型上传,避免潜在的安全风险。

  4. 水印图片应当是 PNG 格式,以支持透明度。

错误处理

file 包使用自定义的 FileError 类型来提供详细的错误信息。在使用过程中,建议进行适当的错误处理和日志记录。

示例

这个示例创建了一个简单的 HTTP 服务器,它可以处理文件上传,并为图片添加水印。

最后更新于