如何解析Content-Disposition标头以检索文件名属性?

时间:2015-03-03 22:17:26

标签: http go

使用go,如何解析从http HEAD请求中检索到的Content-Disposition头以获取文件的文件名?

此外,如何从http HEAD响应中检索标头本身?是这样的吗?

resp, err := http.Head("http://example.com/")
//handle error
contentDisposition := resp.Header.Get("Content-Disposition")

mime/multipart包指定了Part类型上返回文件名的方法(称为FileName),但我不清楚我应该如何构建一个Part,或者是什么。

1 个答案:

答案 0 :(得分:12)

您可以使用mime.ParseMediaType函数解析Content-Disposition标题。

disposition, params, err := mime.ParseMediaType(`attachment;filename="foo.png"`)
filename := params["filename"] // set to "foo.png"

这也适用于标题中的Unicode文件名(例如Content-Disposition: attachment;filename*="UTF-8''fo%c3%b6.png")。

您可以在此处进行试验:http://play.golang.org/p/AjWbJB8vUk