я запускаю пример джина о загрузке файла, это репо с https://github.com/gin-gonic/examples/tree/5898505356e9064c49abb075eae89596a3c5cd67/upload-file/single.
когда я изменяю это предел
router.MaxMultipartMemory = 1 // 8 MiB
но не просыпается для загрузки большого файла, кто-нибудь знает это.
package main
import (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// Set a lower memory limit for multipart forms (default is 32 MiB)
router.MaxMultipartMemory = 1 // 8 MiB
fmt.Println(router.MaxMultipartMemory)
router.Static("/", "./public")
router.POST("/upload", func(c *gin.Context) {
ct := c.Request.Header.Get("Content-Type")
fmt.Println(ct)
name := c.PostForm("name")
email := c.PostForm("email")
// Source
file, err := c.FormFile("file")
if err != nil {
c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error()))
return
}
if err := c.SaveUploadedFile(file, file.Filename); err != nil {
c.String(http.StatusBadRequest, fmt.Sprintf("upload file err: %s", err.Error()))
return
}
c.String(http.StatusOK, fmt.Sprintf("File %s uploaded successfully with fields name=%s and email=%s.", file.Filename, name, email))
})
router.Run(":8080")
}
Я ожидаю, что когда размер файла больше предела, должна появиться ошибка.
обновление
неправильно понимают, MaxMultipartMemory просто ограничивает память, не для размера файла загрузки файла, даже если размер файла больше, чем этот, запишет во временный файл.