gin框架之文件上传
- 2020 年 3 月 16 日
- 筆記
这篇文章我们主要讲gin框架的文件上传功能
1、单文件上传
package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" ) func main() { router := gin.Default() router.POST("/upload", func(c *gin.Context) { file, _ := c.FormFile("file") // 上传文件至指定目录 if err := c.SaveUploadedFile(file, "./upload/"+file.Filename); err != nil { fmt.Println(err) } c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename)) }) router.Run(":8080") }
postman示例

curl示例
curl --location --request POST 'http://127.0.0.1:8080/upload' --header 'Content-Type: multipart/form-data; boundary=--------------------------091075461974876853112895' --form 'file=@/C:/Users/Administrator/Pictures/go.jpg'
2、多文件上传
package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" ) func main() { router := gin.Default() router.POST("/upload", func(c *gin.Context) { file, _ := c.FormFile("file") // 上传文件至指定目录 if err := c.SaveUploadedFile(file, "./upload/"+file.Filename); err != nil { fmt.Println(err) } c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename)) }) router.POST("/upload/multi", func(c *gin.Context) { // Multipart form form, _ := c.MultipartForm() files := form.File["file[]"] for _, file := range files { if err := c.SaveUploadedFile(file, "./upload/"+file.Filename); err != nil { fmt.Println(err) } } c.String(http.StatusOK, fmt.Sprintf("%d files uploaded!", len(files))) }) router.Run(":8080") }
postman示例

curl示例
curl --location --request POST 'http://127.0.0.1:8080/upload/multi' --header 'Content-Type: multipart/form-data; boundary=--------------------------296843343751307885084965' --form 'file[]=@/C:/Users/Administrator/Pictures/go.jpg' --form 'file[]=@/C:/Users/Administrator/Pictures/a.jpg'
如果觉得对你有用,记着关注我!你的关注,是我最更新的最大动力!