diff --git a/binding/form_mapping.go b/binding/form_mapping.go index b81ad195..e78c0512 100644 --- a/binding/form_mapping.go +++ b/binding/form_mapping.go @@ -7,6 +7,7 @@ package binding import ( "errors" "fmt" + "mime/multipart" "reflect" "strconv" "strings" @@ -157,6 +158,11 @@ func setByForm(value reflect.Value, field reflect.StructField, form map[string][ return false, fmt.Errorf("%q is not valid value for %s", vs, value.Type().String()) } return true, setArray(vs, value, field) + case reflect.Struct: + if _, ok := value.Interface().(multipart.FileHeader); ok && value.IsZero() { + return false, nil + } + fallthrough default: var val string if !ok {