Gin文件上传只需几行代码
Posted jiangxiaoju
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gin文件上传只需几行代码相关的知识,希望对你有一定的参考价值。
原创不易,未经允许,请勿转载。
文章目录
一、单文件上传
SaveUploadedFile
:这个方法用来保存上传的文件,第一个参数为上传的文件,第二个参数为文件保存的地址
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main()
r := gin.Default()
//限制上传最大尺寸 默认大小为 const defaultMultipartMemory = 32 << 20 // 32 MB
r.MaxMultipartMemory = 8 << 20
r.POST("/upload", func(c *gin.Context)
file, err := c.FormFile("file")
if err != nil
c.JSON(500, gin.H"message": "上传图片出错")
c.SaveUploadedFile(file, file.Filename)
c.JSON(http.StatusOK, gin.H"message": file.Filename)
)
r.Run(":8888")
二、多文件上传
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
)
func main()
r := gin.Default()
r.MaxMultipartMemory = 8 << 20
r.POST("/upload", func(c *gin.Context)
form, err := c.MultipartForm()
if err != nil
c.JSON(http.StatusBadRequest, gin.H"message": err.Error())
// 获取所有图片
files := form.File["files"]
// 遍历所有图片
for _, file := range files
// 逐个存
if err := c.SaveUploadedFile(file, file.Filename); err != nil
c.JSON(http.StatusBadRequest, gin.H"message": fmt.Sprintf("upload err %s", err.Error()))
return
c.JSON(http.StatusOK, gin.H"message": fmt.Sprintf("upload ok %d files", len(files)))
)
r.Run(":8888")
三、使用Postman进行测试
创建一个测试,方法使用POST
,在Body里面,选择form-data
,在key那边,填入参数名字为file
,并把类型选择为File
,然后在value
中选择要上传的文件
在项目根目录可以发现上传后的文件
拒绝白嫖从一键三连开始!
原创不易,未经允许,请勿转载。
以上是关于Gin文件上传只需几行代码的主要内容,如果未能解决你的问题,请参考以下文章