diff --git a/v2/internal/helpers/helpers.go b/v2/internal/helpers/helpers.go index 3b7d31c..b28d371 100644 --- a/v2/internal/helpers/helpers.go +++ b/v2/internal/helpers/helpers.go @@ -300,11 +300,14 @@ func GetFileForFileUpload(request common.FileUploadRequest) (*os.File, error) { return file, nil } if request.Base64 != "" { + if request.FileName == "" { + return nil, fmt.Errorf("FileName is required when Base64 is provided") + } data, err := base64.StdEncoding.DecodeString(request.Base64) if err != nil { return nil, fmt.Errorf("failed to decode base64: %w", err) } - file, err := os.Create(request.FileName) + file, err := os.CreateTemp("", request.FileName) if err != nil { return nil, fmt.Errorf("failed to create file: %w", err) } @@ -318,7 +321,7 @@ func GetFileForFileUpload(request common.FileUploadRequest) (*os.File, error) { file.Seek(0, io.SeekStart) // Remove from disk but keep open - os.Remove(request.FileName) + os.Remove(file.Name()) return file, nil } diff --git a/v2/internal/helpers/helpers_test.go b/v2/internal/helpers/helpers_test.go index 5c499f5..6eec54f 100644 --- a/v2/internal/helpers/helpers_test.go +++ b/v2/internal/helpers/helpers_test.go @@ -819,7 +819,7 @@ MIIBAAIBADANINVALIDKEY== Expect(err).To(BeNil()) }) It("should return error for invalid base64 data", func() { - _, err := GetFileForFileUpload(common.FileUploadRequest{Base64: "invalid_base64"}) + _, err := GetFileForFileUpload(common.FileUploadRequest{Base64: "invalid_base64", FileName: "test.txt"}) Expect(err).ToNot(BeNil()) Expect(err.Error()).To(ContainSubstring("illegal base64 data at input byte")) })