From 470410165ab906d0663280f65a0f1d7c6c7e8375 Mon Sep 17 00:00:00 2001 From: Stainless Bot Date: Fri, 14 Feb 2025 16:59:02 +0000 Subject: [PATCH] fix(client): don't truncate manually specified filenames --- field.go | 2 +- internal/apiform/encoder.go | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) 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 {