diff --git a/main.go b/main.go index c2872e3..3325cd3 100644 --- a/main.go +++ b/main.go @@ -576,7 +576,7 @@ func createShareHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(map[string]string{ "token": token, - "url": "/s/" + token, + "url": "/s/" + token + ".pdf", }) } @@ -602,6 +602,7 @@ func listSharesHandler(w http.ResponseWriter, r *http.Request) { func publicShareHandler(w http.ResponseWriter, r *http.Request) { token := chi.URLParam(r, "token") + token = strings.TrimSuffix(token, ".pdf") doc, err := GetShare(token) if err != nil || doc == nil { http.Error(w, "Not found", http.StatusNotFound) @@ -617,6 +618,12 @@ func publicShareHandler(w http.ResponseWriter, r *http.Request) { } else { w.Header().Set("Content-Type", "text/plain") } + // Set filename so Android/browsers handle it properly + filename := strings.ReplaceAll(doc.Title, " ", "-") + ext + if ext == "" { + filename += ".pdf" + } + w.Header().Set("Content-Disposition", fmt.Sprintf(`inline; filename="%s"`, filename)) http.ServeFile(w, r, path) return }