XCo*_*ool 3 iphone xcode objective-c ios
我目前正在检查此标头,如果它可用,我将尝试从中获取文件名。问题是,检索它的最佳方法是什么?据我了解,Content-Disposition 标头可能会显示不同的参数。示例如下:
Content-Disposition = "inline; filename=sample-file-123.pdf"
Content-Disposition = "attachment; filename="123.zip""
Run Code Online (Sandbox Code Playgroud)
我只想获取文件名。
有一个专用的 API 可以用于此目的:URLResponse.suggestedFilename
因此,如果您从 URLResponse 获取标头,只需调用
let filename: String = response.suggestedFilename ?? "default"
Run Code Online (Sandbox Code Playgroud)
你就完成了。请注意,无论文档如何规定,返回值都是可选的,因此如果您敢(我不会),您必须提供默认值或强制解开。
从文档中:
该方法首先检查服务器是否已使用内容处置标头指定文件名。如果使用该机制未指定有效文件名,则此方法将检查 URL 的最后一个路径部分。如果使用最后一个路径组件无法获取有效的文件名,则此方法使用 URL 的主机作为文件名。如果 URL 的主机无法转换为有效的文件名,则使用“未知”文件名。在大多数情况下,此方法会根据 MIME 类型附加正确的文件扩展名。此方法始终返回有效的文件名。