gpt4 book ai didi

go - 从 Content-Disposition header 获取 UTF-8 文件名

转载 作者:IT王子 更新时间:2023-10-29 01:53:51 24 4
gpt4 key购买 nike

当我尝试从 Content-Disposition Header 获取文件名时,go 函数 mime.ParseMediaType() 失败并出现错误 mime: invalid media parameter


我已经发现,它适用于正常的文件名格式:

附件; filename="Geotag_Stamp%20(1)%20(1).jpg" <- 有效

但是使用 UTF-8 文件名(在 rfc6266 中定义)它失败并出现第一段中给出的错误:

附件; filename*=UTF-8''"Geotag_Stamp%20(1)%20(1).jpg" <- 失败


这是我的代码:

package main

import (
"fmt"
"mime"
)

func main() {
d, params, err := mime.ParseMediaType(`attachment; filename="Geotag_Stamp%20(1)%20(1).jpg"`)
if err != nil {
fmt.Println("**Normal Filename error:", err)
}

fmt.Println("Normal:", d, params)
d, params, err = mime.ParseMediaType(`attachment; filename*=UTF-8''"Geotag_Stamp%20(1)%20(1).jpg"`)
if err != nil {
fmt.Println("**UTF-8 Filename error:", err)
}
fmt.Println("UTF-8",d, params)
}

On the playground


stdlib 是否可能不支持 Content-Disposition->Filename 的 UTF-8 版本?

最佳答案

引号必须包含标题值:

attachment; filename*="UTF-8''Geotag_Stamp%20(1)%20(1).jpg"

Run it on the playground

关于go - 从 Content-Disposition header 获取 UTF-8 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com