Fix Content-Disposition header; add dl=(0|1) URI param to use inline (default) or attachment

This commit is contained in:
Alexander Kovalenko 2016-05-12 13:11:27 +03:00
parent 766512c475
commit f101ad6855

View file

@ -197,7 +197,13 @@ func writeResponseContent(filename, mimeType string, rs io.ReadSeeker, w http.Re
w.Header().Set("Content-Type", mimeType) w.Header().Set("Content-Type", mimeType)
} }
if filename != "" { if filename != "" {
w.Header().Set("Content-Disposition", `filename="`+fileNameEscaper.Replace(filename)+`"`) contentDisposition := "inline"
if r.FormValue("dl") != "" {
if dl, _ := strconv.ParseBool(r.FormValue("dl")); dl {
contentDisposition = "attachment"
}
}
w.Header().Set("Content-Disposition", contentDisposition+`; filename="`+fileNameEscaper.Replace(filename)+`"`)
} }
w.Header().Set("Accept-Ranges", "bytes") w.Header().Set("Accept-Ranges", "bytes")
if r.Method == "HEAD" { if r.Method == "HEAD" {