aboutsummaryrefslogtreecommitdiff
path: root/go
diff options
context:
space:
mode:
authorAlexander Kovalenko <alexanderk23@gmail.com>2016-05-12 13:11:27 +0300
committerAlexander Kovalenko <alexanderk23@gmail.com>2016-05-12 13:11:27 +0300
commitf101ad6855ae110046b9c16ce3c276addf75837e (patch)
tree08510e3ee78ba51ebb3fa6156c3822f5a450ecbb /go
parent766512c47523f65b345331bb632bd6a864890fec (diff)
downloadseaweedfs-f101ad6855ae110046b9c16ce3c276addf75837e.tar.xz
seaweedfs-f101ad6855ae110046b9c16ce3c276addf75837e.zip
Fix Content-Disposition header; add dl=(0|1) URI param to use inline (default) or attachment
Diffstat (limited to 'go')
-rw-r--r--go/weed/weed_server/volume_server_handlers_read.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/go/weed/weed_server/volume_server_handlers_read.go b/go/weed/weed_server/volume_server_handlers_read.go
index 0bfe06d42..5f3199738 100644
--- a/go/weed/weed_server/volume_server_handlers_read.go
+++ b/go/weed/weed_server/volume_server_handlers_read.go
@@ -197,7 +197,13 @@ func writeResponseContent(filename, mimeType string, rs io.ReadSeeker, w http.Re
w.Header().Set("Content-Type", mimeType)
}
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")
if r.Method == "HEAD" {