在Gin中,我们可以通过设置MaxMultipartMemory
字段来限制上传文件的最大大小。这个字段定义在gin.RouterGroup
类型中,因此我们需要先创建一个Router实例(例如使用gin.Default()
或gin.New()
方法),然后再设置该字段的值。
示例代码如下:
import (
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// 设置上传文件的最大大小为10MB
router.MaxMultipartMemory = 10 << 20
router.POST("/upload", func(c *gin.Context) {
// 处理上传文件
file, err := c.FormFile("file")
if err != nil {
c.JSON(400, gin.H{
"error": err.Error(),
})
return
}
// 输出上传文件信息
c.JSON(200, gin.H{
"filename": file.Filename,
"size": file.Size,
})
})
router.Run(":8080")
}
在上述代码中,我们通过将router.MaxMultipartMemory
设置为10MB来限制上传文件的最大大小。接着,在路由处理函数中,我们使用c.FormFile()
方法获取上传的文件,并输出文件名和大小。
注意:router.MaxMultipartMemory
只适用于multipart/form-data类型的POST请求。对于其他类型的POST请求(例如application/json),可能需要手动解析HTTP请求体。