Safe parse form and remove unnecessary parse on query #63

Merged
lunny merged 1 commits from lunny/parse_safe into master 2019-09-19 01:04:11 +00:00
3 changed files with 9 additions and 4 deletions

3
.gitignore vendored
View File

@ -1 +1,2 @@
.vscode
.vscode
*.log

View File

@ -35,7 +35,9 @@ func (f *Forms) Trimmed(key string) (string, error) {
// Strings returns request form as strings
func (f *Forms) Strings(key string) ([]string, error) {
(*http.Request)(f).ParseMultipartForm(32 << 20)
if (*http.Request)(f).Form == nil {
(*http.Request)(f).ParseMultipartForm(32 << 20)
}
if v, ok := (*http.Request)(f).Form[key]; ok {
return v, nil
}
@ -114,7 +116,10 @@ func (f *Forms) MustTrimmed(key string, defaults ...string) string {
// MustStrings returns request form as strings with default
func (f *Forms) MustStrings(key string, defaults ...[]string) []string {
(*http.Request)(f).ParseMultipartForm(32 << 20)
if (*http.Request)(f).Form == nil {
(*http.Request)(f).ParseMultipartForm(32 << 20)
}
if v, ok := (*http.Request)(f).Form[key]; ok {
return v
}

View File

@ -145,7 +145,6 @@ func (f *Queries) MustString(key string, defaults ...string) string {
// MustStrings returns request form as strings with default
func (f *Queries) MustStrings(key string, defaults ...[]string) []string {
(*http.Request)(f).ParseMultipartForm(32 << 20)
if v, ok := f.Values()[key]; ok {
return v
}