summaryrefslogtreecommitdiff
path: root/vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go')
-rw-r--r--vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go74
1 files changed, 0 insertions, 74 deletions
diff --git a/vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go b/vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go
deleted file mode 100644
index 4ebe83263..000000000
--- a/vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright 2019 Gin Core Team. All rights reserved.
-// Use of this source code is governed by a MIT style
-// license that can be found in the LICENSE file.
-
-package binding
-
-import (
- "errors"
- "mime/multipart"
- "net/http"
- "reflect"
-)
-
-type multipartRequest http.Request
-
-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
-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 {
- return setByMultipartFormFile(value, field, files)
- }
-
- return setByForm(value, field, r.MultipartForm.Value, key, opt)
-}
-
-func setByMultipartFormFile(value reflect.Value, field reflect.StructField, files []*multipart.FileHeader) (isSet bool, err error) {
- switch value.Kind() {
- case reflect.Ptr:
- switch value.Interface().(type) {
- case *multipart.FileHeader:
- value.Set(reflect.ValueOf(files[0]))
- return true, nil
- }
- case reflect.Struct:
- switch value.Interface().(type) {
- case multipart.FileHeader:
- value.Set(reflect.ValueOf(*files[0]))
- return true, nil
- }
- case reflect.Slice:
- slice := reflect.MakeSlice(value.Type(), len(files), len(files))
- isSet, err = setArrayOfMultipartFormFiles(slice, field, files)
- if err != nil || !isSet {
- return isSet, err
- }
- value.Set(slice)
- return true, nil
- case reflect.Array:
- return setArrayOfMultipartFormFiles(value, field, files)
- }
- return false, ErrMultiFileHeader
-}
-
-func setArrayOfMultipartFormFiles(value reflect.Value, field reflect.StructField, files []*multipart.FileHeader) (isSet bool, err error) {
- if value.Len() != len(files) {
- return false, ErrMultiFileHeaderLenInvalid
- }
- for i := range files {
- set, err := setByMultipartFormFile(value.Index(i), field, files[i:i+1])
- if err != nil || !set {
- return set, err
- }
- }
- return true, nil
-}