diff --git a/internal/server/handler.go b/internal/server/handler.go index ba6bfb662f2f27ae3787b0e36f9ae6a2d4ea5654..1f1325203c45b38c876d8d018bf307e462bbab88 100644 --- a/internal/server/handler.go +++ b/internal/server/handler.go @@ -41,13 +41,12 @@ import ( ) const ( - fileIdParam = "fileId" - fileFormKey = "file" - vorgangIdFormKey = "vorgangId" - contentTypeHeaderKey = "Content-Type" - contentDispositionHeaderKey = "Content-Disposition" - maxFileSizeInMB = 150 - fileChunkSizeInByte = 1024 * 1024 + fileIdParam = "fileId" + fileFormKey = "file" + vorgangIdFormKey = "vorgangId" + contentTypeHeaderKey = "Content-Type" + maxFileSizeInMB = 150 + fileChunkSizeInByte = 1024 * 1024 ) func RegisterHomeEndpoint(mux *runtime.ServeMux) { @@ -210,7 +209,10 @@ func getFileHandler(w http.ResponseWriter, r *http.Request, vars map[string]stri return } - err = writeMultipartResponse(w, fileBuffer) + w.Header().Set(contentTypeHeaderKey, "application/octet-stream") + w.WriteHeader(http.StatusOK) + + _, err = fileBuffer.WriteTo(w) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } @@ -251,30 +253,6 @@ func fetchFileFromGrpc(ctx context.Context, fileId string, grpcAddress string) ( return &fileBuffer, nil } -func writeMultipartResponse(w http.ResponseWriter, fileBuffer *bytes.Buffer) error { - w.Header().Set(contentTypeHeaderKey, "application/octet-stream") - w.Header().Set(contentDispositionHeaderKey, `attachment; filename="file"`) - w.WriteHeader(http.StatusOK) - - mw := multipart.NewWriter(w) - part, err := mw.CreateFormFile(fileFormKey, fileFormKey) - if err != nil { - return fmt.Errorf("error creating multipart form file") - } - - _, err = fileBuffer.WriteTo(part) - if err != nil { - return fmt.Errorf("error writing file data to multipart") - } - - err = mw.Close() - if err != nil { - return fmt.Errorf("error closing multipart writer") - } - - return nil -} - func ErrorHandler(ctx context.Context, mux *runtime.ServeMux, marshaler runtime.Marshaler, w http.ResponseWriter, r *http.Request, err error) { st, ok := status.FromError(err) if !ok {