检测 NSURL 是否是 UIImage 类支持的文件格式的 URL



我正在寻找一种方法来检测NSURL是否是UIImage类支持的文件格式的URL,如果是,请在MWPhotoBrowser(https://github.com/mwaterfall/MWPhotoBrowser)而不是UIWebView之类的东西中打开它。我的第一个想法是对所有支持的文件扩展名设置一个 if 条件。我想知道是否有人知道更好的方法?

在你至少开始获取URL之前,你不知道URL上有什么。有些URL看起来像是以文件名结尾的 - 甚至是图像文件名 - 但实际上指向HTML页面(例如,用于查看所述图像)。有些 URL 似乎不以文件名结尾,而是直接指向图像文件。

您可以通过发出 HTTP HEAD 请求来获得有关 URL 中数据类型的很好的提示:请参阅 NSURLRequestNSHTTPURLResponse 并查找 Content-Type 标头。(这些只是描述请求和响应;您需要NSURLSession来执行请求并获得响应。

然而,即使是HEAD请求也并不总是正确报告:真正确定URL中是否有图像的唯一方法是获取它 - 大多数图像格式都可以在数据的前几个字节内识别,因此您可以开始获取,查看您获得的第一个部分数据,如果您不想要其余数据,则中止获取。

最新更新