type returnData struct {
Status int
Info string
Data []interface{}
}
func (c *PostController) Post() {
/*
POST請求操作數據庫
*/
status := 1
info := ""
var data []interface{}
/*
請求數據處理
GetString(key string) string
GetStrings(key string) []string
GetInt(key string) (int64, error)
GetBool(key string) (bool, error)
GetFloat(key string) (float64, error)
*/
// 上傳文件
f, h, err := c.GetFile("uploadname")
if err != nil {
log.Fatal("getfile err ", err)
}
defer f.Close()
err = c.SaveToFile("uploadname", "static/upload/"+h.Filename) // 保存位置在 static/upload, 沒有文件夾要先創建
fmt.Println(err)
age := c.GetString("age")
name := c.GetString("name")
intAge, err := strconv.Atoi(age) // equivalent to ParseInt(s, 10, 0)
fmt.Println(intAge)
fmt.Println(err)
fmt.Println(age)
fmt.Println(name)
// 請求數據直接綁定指定對象
//var id int
//this.Ctx.Input.Bind(&id, "id") //id ==123
//var isok bool
//this.Ctx.Input.Bind(&isok, "isok") //isok ==true
//var ft float64
//this.Ctx.Input.Bind(&ft, "ft") //ft ==1.2
//ol := make([]int, 0, 2)
//this.Ctx.Input.Bind(&ol, "ol") //ol ==[1 2]
//ul := make([]string, 0, 2)
//this.Ctx.Input.Bind(&ul, "ul") //ul ==[str array]
//user struct{Name}
//this.Ctx.Input.Bind(&user, "user") //user =={Name:"astaxie"}
jsonData := &returnData{
Status: status,
Info: info,
Data: data,
}
c.Data["json"] = jsonData
c.ServeJSON()
}