douzhong5902 2019-05-15 06:55
浏览 280

杜松子酒的web框架限制上传文件大小不起作用

i run the gin example about file upload , this repo is from https://github.com/gin-gonic/examples/tree/5898505356e9064c49abb075eae89596a3c5cd67/upload-file/single. when i change is limit

    router.MaxMultipartMemory = 1 // 8 MiB

but not woking for upload big file, anyone know this.

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")
}

i expect when file size bigger than limit ,there should be a error.

update

misunderstand , the MaxMultipartMemory just limt the memory, not for file upload file size , even file size is more big than this , will write to temp file.

  • 写回答

1条回答 默认 最新

  • duankang5285 2019-05-21 01:19
    关注

    as comment, code

      router.MaxMultipartMemory = 1 // 8 MiB
    
    

    just limit program can use how much memory when upload file, not limit upload file size.

    评论

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c