1.介绍
在Gin框架中已经支持文件上传,包括单文件上传和多文件上传。
2. 单文件上传
在Gin框架中可以通过FormFile("param")来接收上传的单个文件信息,具体使用参考下面代码:
2.1 代码示例
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
   |  package main import ( 	"github.com/gin-gonic/gin" 	"go-use/practise" ) func main() { 	 	engine := gin.Default() 	 	practise.TestRecFile(engine) 	_ = engine.Run() }
 
  func TestRecFile(engine *gin.Engine) { 	 	engine.MaxMultipartMemory = 8 << 20 	engine.POST("/file", func(context *gin.Context) { 		file, err := context.FormFile("img") 		if err != nil { 			context.JSON(500, gin.H{"err": err}) 			return 		} 		 		dst := "./tmp/"+file.Filename 		fmt.Println(dst) 		 		err = context.SaveUploadedFile(file, dst) 		if err != nil { 			context.JSON(500, gin.H{"err": "文件保存失败: " + err.Error()}) 			return 		} 		context.JSON(200, gin.H{ 			"msg":  "success", 			"name": file.Filename, 			"size": file.Size, 		}) 	}) }
 
  | 
 
2.2 请求返回

3. 多文件上传
在Gin框架中可以通过MultipartForm()来接收上传的多个文件信息,具体使用参考下面代码:
3. 1 代码示例
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
   |  package main import ( 	"github.com/gin-gonic/gin" 	"go-use/practise" ) func main() { 	 	engine := gin.Default() 	 	practise.TestRecFiles(engine) 	_ = engine.Run() }
 
  func TestRecFiles(engine *gin.Engine)  { 	 	engine.MaxMultipartMemory = 8 << 20 	engine.POST("/files", func(context *gin.Context) { 		 		form, _ := context.MultipartForm() 		files := form.File["imgList[]"] 		 		for _, file := range files { 			_ = context.SaveUploadedFile(file, "./tmp/"+file.Filename) 		} 		context.String(200,"保存成功!") 	}) }
 
  | 
 
3. 2 请求返回
