package main import ( "fmt" "github.com/gin-gonic/gin" "log" "net/http" ) func main() { r := gin.Default() r.POST("/form", func(c *gin.Context) { //表单参数设置默认值 types := c.DefaultPostForm("type", "default") //接受其他的 username := c.PostForm("username") password := c.PostForm("password") //多选框 hobbys := c.PostFormArray("hobby") c.String(http.StatusOK, fmt.Sprintf("type is %s,username is %s,password is %s,hobby is %v", types, username, password, hobbys)) }) r.POST("/upload", func(c *gin.Context) { //表单取文件 file, _ := c.FormFile("file") log.Println(file.Filename) //上传到项目的根目录,名字就用本身的 c.SaveUploadedFile(file, file.Filename) //打印信息 c.String(200, fmt.Sprintf("uploaded file is %s", file.Filename)) }) //限制表单上传大小8MB 默认为32MB r.POST("/uploads", func(c *gin.Context) { r.MaxMultipartMemory = 8 << 20 //表单取文件 form, err := c.MultipartForm() if err != nil { c.String(http.StatusBadRequest, err.Error()) } //获取所有图片 files := form.File["files"] for _, file := range files { //逐个存 err = c.SaveUploadedFile(file, file.Filename) if err != nil { c.String(http.StatusBadRequest, err.Error()) return } } c.String(200, fmt.Sprintf("uploaded files is %s,num:%v", form.File["files"][0].Filename, len(files))) }) r.Run(":8000") }