我正在尝试使用 Go / Gin Gonic 从 HTML 表单中捕获一组 Post 值——在 PHP 中我会使用类似的东西:
<form method="POST" enctype="multipart/form-data" action="mygo">
<input type=hidden name="emails[]" value="email1@email.com">
<input type=hidden name="emails[]" value="email2@email.com">
<input type=hidden name="emails[]" value="email3@email.com">
</form>
然而,这似乎不适用于 Gin Gonic(或 Go )。
我也试过:
<form method="POST" enctype="multipart/form-data" action="mygo">
<input type=hidden name="emails" value="email1@email.com">
<input type=hidden name="emails" value="email2@email.com">
<input type=hidden name="emails" value="email3@email.com">
</form>
与其他地方一样,建议这样做会导致c.PostForm("emails")
返回切片。但是在实践中,这似乎反而将最后一个值作为字符串返回:(
有趣的是c.Request.PostForm
,即使c.Request.ParseForm()
首先调用它,它也会返回一个空映射。我究竟做错了什么?
走形式:
func main() {
// ...
router.POST("mygo",parseFunc)
}
func mygo(c *gin.Context) {
c.Request.ParseForm()
log.Printf("%v",c.Request.PostForm["emails"]) // ""
log.Printf("%v",c.PostForm("emails") // "email3@email.com"
}