diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go index 443f7d7..61d3a06 100644 --- a/internal/handlers/handlers.go +++ b/internal/handlers/handlers.go @@ -14,6 +14,7 @@ import ( "io" "io/fs" "net/http" + "net/url" "os" "path" "strings" @@ -174,16 +175,18 @@ func (h *UploadHandlers) Upload(w http.ResponseWriter, r *http.Request) { } downloadURL := path.Join("/f", fSaltedHash, fHandler.Filename) + downloadURLParsed, _ := url.Parse(downloadURL) if strings.Contains(r.UserAgent(), "curl") { _, scheme := utils.NetworkType(r.Host) - w.Write([]byte(path.Join(scheme, "://", r.Host, downloadURL) + "\r\n")) + downloadURL = fmt.Sprint(scheme, "://", r.Host, downloadURLParsed, "\r\n") + w.Write([]byte(downloadURL)) return } if err := compiledTemplates["uploaded"].Execute(w, &UploadedData{ MainSite: utils.MainSite(r.Host), - DownloadURL: downloadURL, + DownloadURL: downloadURLParsed.String(), KeepForHours: h.conf.Uploads.Limits.KeepForHours, }); err != nil { w.WriteHeader(http.StatusInternalServerError)