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'  

如果觉得对你有用,记着关注我!你的关注,是我最更新的最大动力!