gin上传文件 - Go语言中文社区

gin上传文件


方式一:

func UpLoadFile( c *gin.Context)  {
   file, err := c.FormFile("filename")
   if err != nil {
      c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error()))
      return
   }
   file.Filename = "copy_" + file.Filename
   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 success", file.Filename )
}

方法二:

// 接收client上传的文件
// 从FormFile中获取相关的文件data!
// 然后写入本地文件
func upload(c *gin.Context) {
    // 注意此处的文件名和client处的应该是一样的
    file, header, err := c.Request.FormFile("uploadFile")
    filename := header.Filename
    fmt.Println(header.Filename)
    // 创建临时接收文件
    out, err := os.Create("copy_" + filename)
    if err != nil {
        log.Fatal(err)
    }
    defer out.Close()
    // Copy数据
    _, err = io.Copy(out, file)
    if err != nil {
        log.Fatal(err)
    }
    c.String(http.StatusOK, "upload file success")
}

方法三:多文件上传

func upload(c *gin.Context) {

        // Multipart form
        form, err := c.MultipartForm()
        if err != nil {
            c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error()))
            return
        }
        files := form.File["files"]

        for _, file := range files {
            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("Uploaded successfully %d files ", len(files)))

}

 

 

 

转载于:https://my.oschina.net/u/3625745/blog/3055823

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_34318272/article/details/92394999
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-13 12:14:00
  • 阅读 ( 1207 )
  • 分类:Go Web框架

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢