从 iPhone 应用程序中的 URL 识别文件类型

Posted

技术标签:

【中文标题】从 iPhone 应用程序中的 URL 识别文件类型【英文标题】:Identify file type from URL in an iPhone app 【发布时间】:2012-08-17 07:27:51 【问题描述】:

对于 iPhone 应用,我正在使用 URL 下载文件:

来自这种类型的url::http://xxxxxxxxxxxxxxxxxxx.com/xxxxxxx//xxx/ipad.html?operation=getFile&contentId=61768b16-6b44-4d0b-bdcf-d10107d1f328

我正在从服务器下载文件,但它的类型可能是 .pdf 或 .docx 或 .doc

有没有办法从 url 识别文件类型?

【问题讨论】:

我猜在整个文件被下载之前你不会知道它的文件类型。另一种方法是在 url 本身中为文件类型添加一个参数,因此请先检查您的 url 参数并相应地继续。 【参考方案1】:

不,由于文件名不在 URL 中,因此您无法做出假设。

但是在您收到 URL 的标头后,他们可能会告诉您您将收到什么样的文件。

【讨论】:

【参考方案2】:

在下面的 NSURLConnectionDelegate 方法中

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
NSString *mimeType = [response MIMEType]
NString *suggestedFilename = [response suggestedFilename];


当然,只有从服务器获取它们才有效。

【讨论】:

【参考方案3】:

在您提供的 URL 中没有任何类型的指示,即使该 URL 看起来确实指定了某种类型的文件(例如 http://foo.com/bar.pdf),也不能保证服务器实际上会返回 PDF 文件。

如果您不想下载该文件,您可以随时发出 HEAD 请求以仅获取 HTTP 标头并查看 Content-Type 标头的值。或者,您可以在请求中放置 Accept 标头,以限制对特定类型数据的响应。

【讨论】:

以上是关于从 iPhone 应用程序中的 URL 识别文件类型的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:- 从标签文本链接识别

从其他应用程序打开 URL 仅适用于 iPad,在 iPhone 上禁用

是否有任何将图像转换为文本格式的 iphone 类?

WinSCP .NET 程序集无法识别 Session.PutFiles 中的 FTP 链接/URL

将文件保存到 iphone 中的 cocoahttpserver

从 iPhone 查找连接到本地网络的系统?