修复安卓手机显示名称不符显示为linux的问题;修复文件名乱码的问题
This commit is contained in:
@@ -456,6 +456,7 @@ func (h *HTTPHandler) downloadFallback(c *gin.Context) {
|
||||
defer cancel()
|
||||
|
||||
filename := filepath.Base(transfer.Name)
|
||||
filename = decodeDownloadFilename(filename)
|
||||
if filename == "." || filename == "" {
|
||||
filename = "download.bin"
|
||||
}
|
||||
@@ -597,6 +598,19 @@ func contentDisposition(filename string) string {
|
||||
return `attachment; filename="` + escaped + `"`
|
||||
}
|
||||
|
||||
func decodeDownloadFilename(filename string) string {
|
||||
filename = strings.TrimSpace(filename)
|
||||
if filename == "" || !strings.Contains(filename, "%") {
|
||||
return filename
|
||||
}
|
||||
|
||||
decoded, err := url.PathUnescape(filename)
|
||||
if err != nil {
|
||||
return filename
|
||||
}
|
||||
return strings.TrimSpace(decoded)
|
||||
}
|
||||
|
||||
func (h *HTTPHandler) ensureFallbackBucket(ctx context.Context, transferID string) error {
|
||||
if h.deps.MinIOClient == nil {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user