Gin框架一些基础的用法你知道了?
接收get参数

接收post参数
接收表单

接收body

文件上传
单文件上传
package main
import (
"fmt"
"log"
"net/http"
"strings"
"time"
"github.com/gin-gonic/gin"
)
type Response struct {
Code int `json:"code"`
Msg string `json:"message"`
Data interface{} `json:"data"`
}
func Hello(ctx *gin.Context) {
resp := &Response{
Code: 0,
Msg: "success",
Data: fmt.Sprintf("Hello World! %s", time.Now()),
}
ctx.JSON(http.StatusOK, resp)
}
func Upload(c *gin.Context) {
f, _ := c.FormFile("file")
message := c.PostForm("message")
c.SaveUploadedFile(f, "./"+f.Filename)
c.JSON(200, gin.H{
"msg": message,
})
}
func main() {
router := gin.Default()
router.Use(Cors())
router.GET("/", Hello)
router.POST("/upload", Upload)
err := router.Run(":8888")
if err != nil {
fmt.Println("Init http server. Error :", err)
}
}
func Cors() gin.HandlerFunc {
return func(c *gin.Context) {
method := c.Request.Method
origin := c.Request.Header.Get("Origin")
var headerKeys []string
for k := range c.Request.Header {
headerKeys = append(headerKeys, k)
}
headerStr := strings.Join(headerKeys, ", ")
if headerStr == "" {
headerStr = "access-control-allow-origin, access-control-allow-headers"
}
if origin != "" {
c.Header("Access-Control-Allow-Origin", origin)
c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE,UPDATE")
c.Header("Access-Control-Allow-Headers", "*")
c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma,FooBar")
c.Header("Access-Control-Max-Age", "172800")
c.Header("Access-Control-Allow-Credentials", "true")
c.Set("content-type", "application/json")
}
if method == "OPTIONS" {
c.JSON(http.StatusOK, "Options Request!")
}
c.Next()
}
}

多文件上传
func MultFile(c *gin.Context) {
form, err := c.MultipartForm()
if err != nil {
log.Fatal(err)
}
f := form.File["file"]
for _, file := range f {
c.SaveUploadedFile(file, "./"+file.Filename)
c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s"+file.Filename))
c.File("./" + file.Filename)
}
message := c.PostForm("message")
fmt.Println(message)
}
