我正在寻找一种方法来检测 NSURL 是否是 UIImage 类支持的文件格式的 URL,如果是,则在 MWPhotoBrowser (https://github.com/mwaterfall/MWPhotoBrowser) 之类的文件中打开它UIWebView 的。我的第一个想法是使用所有受支持的文件扩展名的 if 条件。我想知道是否有人知道更好的方法?
问问题
264 次
1 回答
3
在您至少开始获取 URL 之前,您不知道 URL 中的内容。一些 URL 看起来像以文件名结尾——甚至是图像文件名——但实际上指向 HTML 页面(例如,用于查看所述图像)。一些 URL 似乎没有以文件名结尾,但确实直接指向图像文件。
HEAD
通过发出 HTTP请求,您可以很好地提示 URL 中的数据类型:查看NSURLRequest
并NSHTTPURLResponse
查找 Content-Type 标头。(那些只是描述请求和响应;您需要NSURLSession
执行请求并获得响应。)
但是,即使是 HEAD 请求也并不总是正确报告:真正确定 URL 中是否有图像的唯一方法是获取它——大多数图像格式可以在数据的前几个字节中识别,因此您可以开始提取,查看您获得的第一个部分数据,如果您不想要其余部分,则中止提取。
于 2012-11-22T08:51:17.920 回答