From 0e522db2d4f9cfac166105be1ec6d8b61d86572d Mon Sep 17 00:00:00 2001 From: Heinrich 'Henrik' Langos Date: Tue, 17 Jan 2023 01:28:43 +0100 Subject: refactor: Extract file and filename from upload form separately --- app/app.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/app/app.go b/app/app.go index 3131d1c..4ca75f1 100644 --- a/app/app.go +++ b/app/app.go @@ -262,15 +262,11 @@ func (a *App) uploadHandler(respWriter http.ResponseWriter, request *http.Reques } // save uploaded data in upload directory - videoContentFromUpload, fileHeaderFromUpload, err := request.FormFile("video_file") + videoContentFromUpload, videoFilenameFromUpload, err := getUploadedVideoFile(a, request, respWriter) if err != nil { - err := fmt.Errorf("error processing form: %w", err) - log.Error(err) - http.Error(respWriter, err.Error(), http.StatusInternalServerError) return } defer videoContentFromUpload.Close() - videoFilenameFromUpload := fileHeaderFromUpload.Filename // keeping the file extension from the upload file probably makes it easier for ffmpeg to // read the file for transcoding later @@ -455,6 +451,18 @@ func (a *App) uploadHandler(respWriter http.ResponseWriter, request *http.Reques } } +func getUploadedVideoFile(a *App, request *http.Request, respWriter http.ResponseWriter) (fileReader io.ReadCloser, fileName string, err error) { + fileReader, fileHeaderFromUpload, err := request.FormFile("video_file") + if err != nil { + err := fmt.Errorf("error processing form: %w", err) + log.Error(err) + http.Error(respWriter, err.Error(), http.StatusInternalServerError) + return nil, "", err + } + fileName = fileHeaderFromUpload.Filename + return +} + func getSelectedTargetLibraryDir(a *App, request *http.Request, respWriter http.ResponseWriter) (targetLibraryDirectory string, err error) { if _, exists := a.Library.Paths[request.FormValue("target_library_path")]; !exists { err = fmt.Errorf("uploading to invalid library path: %s", request.FormValue("target_library_path")) @@ -462,7 +470,8 @@ func getSelectedTargetLibraryDir(a *App, request *http.Request, respWriter http. http.Error(respWriter, err.Error(), http.StatusInternalServerError) return "", err } - return request.FormValue("target_library_path"), nil + targetLibraryDirectory = request.FormValue("target_library_path") + return } // HTTP handler for /import -- cgit v1.2.3