set filename in Content-Disposition header

This commit is contained in:
Chris Lu 2020-07-25 20:06:40 -07:00
parent 54eebf538f
commit 023a1efdf2
3 changed files with 6 additions and 6 deletions

View file

@ -218,7 +218,7 @@ func handleStaticResources2(r *mux.Router) {
r.PathPrefix("/seaweedfsstatic/").Handler(http.StripPrefix("/seaweedfsstatic", http.FileServer(statikFS))) r.PathPrefix("/seaweedfsstatic/").Handler(http.StripPrefix("/seaweedfsstatic", http.FileServer(statikFS)))
} }
func adjustHeadersAfterHEAD(w http.ResponseWriter, r *http.Request, filename string) { func adjustHeaders(w http.ResponseWriter, r *http.Request, filename string) {
if filename != "" { if filename != "" {
contentDisposition := "inline" contentDisposition := "inline"
if r.FormValue("dl") != "" { if r.FormValue("dl") != "" {

View file

@ -101,14 +101,14 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request,
} }
setEtag(w, etag) setEtag(w, etag)
filename := entry.Name()
adjustHeaders(w, r, filename)
if r.Method == "HEAD" { if r.Method == "HEAD" {
w.Header().Set("Content-Length", strconv.FormatInt(int64(filer2.TotalSize(entry.Chunks)), 10)) w.Header().Set("Content-Length", strconv.FormatInt(int64(filer2.TotalSize(entry.Chunks)), 10))
return return
} }
filename := entry.Name()
adjustHeadersAfterHEAD(w, r, filename)
totalSize := int64(filer2.TotalSize(entry.Chunks)) totalSize := int64(filer2.TotalSize(entry.Chunks))
if rangeReq := r.Header.Get("Range"); rangeReq == "" { if rangeReq := r.Header.Get("Range"); rangeReq == "" {

View file

@ -244,13 +244,13 @@ func writeResponseContent(filename, mimeType string, rs io.ReadSeeker, w http.Re
} }
w.Header().Set("Accept-Ranges", "bytes") w.Header().Set("Accept-Ranges", "bytes")
adjustHeaders(w, r, filename)
if r.Method == "HEAD" { if r.Method == "HEAD" {
w.Header().Set("Content-Length", strconv.FormatInt(totalSize, 10)) w.Header().Set("Content-Length", strconv.FormatInt(totalSize, 10))
return nil return nil
} }
adjustHeadersAfterHEAD(w, r, filename)
processRangeRequest(r, w, totalSize, mimeType, func(writer io.Writer, offset int64, size int64) error { processRangeRequest(r, w, totalSize, mimeType, func(writer io.Writer, offset int64, size int64) error {
if _, e = rs.Seek(offset, 0); e != nil { if _, e = rs.Seek(offset, 0); e != nil {
return e return e