diff --git a/field.go b/field.go index 730a024d..27fd57f6 100644 --- a/field.go +++ b/field.go @@ -46,5 +46,5 @@ type file struct { contentType string } -func (f *file) Name() string { return f.name } func (f *file) ContentType() string { return f.contentType } +func (f *file) Filename() string { return f.name } diff --git a/internal/apiform/encoder.go b/internal/apiform/encoder.go index 555330ae..148fcb5b 100644 --- a/internal/apiform/encoder.go +++ b/internal/apiform/encoder.go @@ -315,7 +315,9 @@ func (e *encoder) newReaderTypeEncoder() encoderFunc { reader := value.Convert(reflect.TypeOf((*io.Reader)(nil)).Elem()).Interface().(io.Reader) filename := "anonymous_file" contentType := "application/octet-stream" - if named, ok := reader.(interface{ Name() string }); ok { + if named, ok := reader.(interface{ Filename() string }); ok { + filename = named.Filename() + } else if named, ok := reader.(interface{ Name() string }); ok { filename = path.Base(named.Name()) } if typed, ok := reader.(interface{ ContentType() string }); ok {