fix: spaces in filename will be replaced with plus sign (#3841)

Co-authored-by: XZB <i@1248.ink>
This commit is contained in:
XZB-1248
2023-03-14 12:27:42 +08:00
committed by GitHub
parent f3db23a41e
commit c4108007cd
2 changed files with 4 additions and 2 deletions

View File

@ -26,8 +26,9 @@ func Proxy(w http.ResponseWriter, r *http.Request, link *model.Link, file model.
defer func() {
_ = link.Data.Close()
}()
filename := file.GetName()
w.Header().Set("Content-Type", "application/octet-stream")
w.Header().Set("Content-Disposition", fmt.Sprintf(`attachment; filename="%s"; filename*=UTF-8''%s`, file.GetName(), url.QueryEscape(file.GetName())))
w.Header().Set("Content-Disposition", fmt.Sprintf(`attachment; filename="%s"; filename*=UTF-8''%s`, filename, url.PathEscape(filename)))
w.Header().Set("Content-Length", strconv.FormatInt(file.GetSize(), 10))
if link.Header != nil {
// TODO clean header with blacklist or whitelist