mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-17 22:32:26 +08:00
error export for type multipart.FileHeader
This commit is contained in:
parent
20d21ff67f
commit
6661885bfa
@ -15,8 +15,16 @@ type multipartRequest http.Request
|
|||||||
|
|
||||||
var _ setter = (*multipartRequest)(nil)
|
var _ setter = (*multipartRequest)(nil)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// ErrMultiFileHeader multipart.FileHeader invalid
|
||||||
|
ErrMultiFileHeader = errors.New("unsupported field type for multipart.FileHeader")
|
||||||
|
|
||||||
|
// ErrMultiFileHeaderLenInvalid array for []*multipart.FileHeader len invalid
|
||||||
|
ErrMultiFileHeaderLenInvalid = errors.New("unsupported len of array for []*multipart.FileHeader")
|
||||||
|
)
|
||||||
|
|
||||||
// TrySet tries to set a value by the multipart request with the binding a form file
|
// TrySet tries to set a value by the multipart request with the binding a form file
|
||||||
func (r *multipartRequest) TrySet(value reflect.Value, field reflect.StructField, key string, opt setOptions) (isSetted bool, err error) {
|
func (r *multipartRequest) TrySet(value reflect.Value, field reflect.StructField, key string, opt setOptions) (bool, error) {
|
||||||
if files := r.MultipartForm.File[key]; len(files) != 0 {
|
if files := r.MultipartForm.File[key]; len(files) != 0 {
|
||||||
return setByMultipartFormFile(value, field, files)
|
return setByMultipartFormFile(value, field, files)
|
||||||
}
|
}
|
||||||
@ -49,12 +57,12 @@ func setByMultipartFormFile(value reflect.Value, field reflect.StructField, file
|
|||||||
case reflect.Array:
|
case reflect.Array:
|
||||||
return setArrayOfMultipartFormFiles(value, field, files)
|
return setArrayOfMultipartFormFiles(value, field, files)
|
||||||
}
|
}
|
||||||
return false, errors.New("unsupported field type for multipart.FileHeader")
|
return false, ErrMultiFileHeader
|
||||||
}
|
}
|
||||||
|
|
||||||
func setArrayOfMultipartFormFiles(value reflect.Value, field reflect.StructField, files []*multipart.FileHeader) (isSetted bool, err error) {
|
func setArrayOfMultipartFormFiles(value reflect.Value, field reflect.StructField, files []*multipart.FileHeader) (isSetted bool, err error) {
|
||||||
if value.Len() != len(files) {
|
if value.Len() != len(files) {
|
||||||
return false, errors.New("unsupported len of array for []*multipart.FileHeader")
|
return false, ErrMultiFileHeaderLenInvalid
|
||||||
}
|
}
|
||||||
for i := range files {
|
for i := range files {
|
||||||
setted, err := setByMultipartFormFile(value.Index(i), field, files[i:i+1])
|
setted, err := setByMultipartFormFile(value.Index(i), field, files[i:i+1])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user