go gin uploadfile
创建时间:
阅读:
uploadfile
Gin 对接受用户上传的文件做了友好的处理,在 Handler 中可以很简单的实现文件的接收。
要注意的是,上传文件的大小有限制,通常是 <32MB,你可以使用 router.MaxMultipartMemory更改它。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
func Close(c io.Closer) { err := c.Close() if err != nil { log.Fatal(err) } }
func main() { router := gin.Default() router.POST("/upload", func(c *gin.Context) { file, header, _ := c.Request.FormFile("file")
log.Println("size:", header.Size)
fh, err := os.Create(header.Filename) if err != nil { log.Fatal(err) } defer Close(fh) _, err1 := io.Copy(fh, file) if err1 != nil { log.Fatal(err1) } c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", header.Filename)) })
router.POST("/uploads", func(c *gin.Context) { form, _ := c.MultipartForm() files := form.File["upload[]"] for _, file := range files { log.Println(file.Filename) } c.String(http.StatusOK, fmt.Sprintf("%d files uploaded!", len(files))) }) router.Run(":8080") }
|
用 curl 工具测试一下:
1 2 3 4 5 6 7 8 9 10
| $ curl -X POST http://localhost:8080/upload \ -F "file=@/Users/appleboy/test.zip" \ -H "Content-Type: multipart/form-data"
$ curl -X POST http://localhost:8080/uploads \ -F "upload[]=@/Users/appleboy/test1.zip" \ -F "upload[]=@/Users/appleboy/test2.zip" \ -H "Content-Type: multipart/form-data"
|
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 rootid@126.com
文章标题:go gin uploadfile
本文作者:Shawn
发布时间:2019-06-13, 10:38:00
最后更新:2019-07-30, 17:24:30
原始链接:https://gitrootid.github.io/2019/06/13/golang/go-gin-uploadfile_/
版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。