PostForm() handles multipart post

This commit is contained in:
Manu Mtz-Almeida 2015-05-26 16:16:57 +02:00
parent 195ea88a28
commit 500d745123

View File

@ -30,8 +30,6 @@ const (
const AbortIndex = math.MaxInt8 / 2 const AbortIndex = math.MaxInt8 / 2
var _ context.Context = &Context{}
// Param is a single URL parameter, consisting of a key and a value. // Param is a single URL parameter, consisting of a key and a value.
type Param struct { type Param struct {
Key string Key string
@ -76,6 +74,8 @@ type Context struct {
Accepted []string Accepted []string
} }
var _ context.Context = &Context{}
/************************************/ /************************************/
/********** CONTEXT CREATION ********/ /********** CONTEXT CREATION ********/
/************************************/ /************************************/
@ -231,10 +231,13 @@ func (c *Context) query(key string) (string, bool) {
func (c *Context) postForm(key string) (string, bool) { func (c *Context) postForm(key string) (string, bool) {
req := c.Request req := c.Request
req.ParseForm() req.ParseMultipartForm(32 << 20) // 32 MB
if values, ok := req.PostForm[key]; ok && len(values) > 0 { if values, ok := req.PostForm[key]; ok && len(values) > 0 {
return values[0], true return values[0], true
} }
if values, ok := req.MultipartForm.Value[key]; ok && len(values) > 0 {
return values[0], true
}
return "", false return "", false
} }