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

另外,如何从http HEAD响应中检索 header 本身?这样的事情正确吗?

resp, err := http.Head("http://example.com/")
//handle error
contentDisposition := resp.Header.Get("Content-Disposition")
mime/multipart包在Part类型上指定了一种方法,该方法返回文件名(称为FileName),但是我不清楚我应该如何构造Part或从中构造。

最佳答案

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

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

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

您可以在这里进行尝试:http://play.golang.org/p/AjWbJB8vUk

09-07 15:12