From 25a2f3a3ed0f844a7c359e87a2d80f72e80c40c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Tue, 12 Mar 2024 18:29:06 +0800 Subject: [PATCH] fix(webconsole): sftp download utf8 filename (#19709) --- pkg/webconsole/server/sftp_server.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/webconsole/server/sftp_server.go b/pkg/webconsole/server/sftp_server.go index 8bdf4901de..740dd3df84 100644 --- a/pkg/webconsole/server/sftp_server.go +++ b/pkg/webconsole/server/sftp_server.go @@ -20,8 +20,10 @@ import ( "io" "io/fs" "net/http" + "net/url" "path" "sort" + "strings" "sync" "time" @@ -245,7 +247,7 @@ func HandleSftpDownload(ctx context.Context, w http.ResponseWriter, r *http.Requ } defer reader.Close() - w.Header().Add("Content-Disposition", "attachment;filename="+file.Name()) + w.Header().Add("Content-Disposition", "attachment;filename*=utf-8''"+strings.ReplaceAll(url.QueryEscape(file.Name()), "+", "%20")) w.Header().Add("Content-Type", "application/octet-stream") _, err = io.Copy(w, reader) return err