Преглед на файлове

Fixes multipart integration

Manu Mtz-Almeida преди 10 години
родител
ревизия
af8e099dfd
променени са 2 файла, в които са добавени 7 реда и са изтрити 4 реда
  1. 2 1
      binding/form.go
  2. 5 3
      context.go

+ 2 - 1
binding/form.go

@@ -9,13 +9,14 @@ import "net/http"
 type formBinding struct{}
 
 func (_ formBinding) Name() string {
-	return "query"
+	return "form"
 }
 
 func (_ formBinding) Bind(req *http.Request, obj interface{}) error {
 	if err := req.ParseForm(); err != nil {
 		return err
 	}
+	req.ParseMultipartForm(32 << 10) // 32 MB
 	if err := mapForm(obj, req.Form); err != nil {
 		return err
 	}

+ 5 - 3
context.go

@@ -232,11 +232,13 @@ func (c *Context) query(key string) (string, bool) {
 func (c *Context) postForm(key string) (string, bool) {
 	req := c.Request
 	req.ParseMultipartForm(32 << 20) // 32 MB
-	if values, ok := req.PostForm[key]; ok && len(values) > 0 {
+	if values := req.PostForm[key]; len(values) > 0 {
 		return values[0], true
 	}
-	if values, ok := req.MultipartForm.Value[key]; ok && len(values) > 0 {
-		return values[0], true
+	if req.MultipartForm != nil && req.MultipartForm.File != nil {
+		if values := req.MultipartForm.Value[key]; len(values) > 0 {
+			return values[0], true
+		}
 	}
 	return "", false
 }