【问题标题】:Cocoa - application/force-download and NSURLConnectionCocoa - 应用程序/强制下载和 NSURLConnection
【发布时间】:2012-05-04 14:31:43
【问题描述】:

在我的应用程序中,我必须处理一个不幸的 MIME 类型,application/force-download。我确实知道,如果给出直接链接(例如http://blah.com/something.zip),可以建立一个 NSURLConnection 来下载文件,但是我在任何地方都找不到像http://blah.com/download.php?id=123 这样的 URL 的任何成功/信息,这将是PHP 文件。 Web 浏览器当然可以执行这个功能,但是 Cocoa 库怎么可能做到这一点。任何建议/指南都将不胜感激。

谢谢。

【问题讨论】:

    标签: php cocoa nsurlconnection mime


    【解决方案1】:

    您需要为您的NSURLConnection 对象实现一个委托,并在该委托中实现此方法:

    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
    

    通过NSURLReponse 参数,您可以获得 MIME 类型和建议的文件名:

    NSString* type = [response MIMEType];
    NSString* fileName = [response suggestedFilename];
    

    然后由您来编写您的应用程序,以便对于 application/download 的 MIME 类型,您将通过代理接收到的 NSData 并使用适当的文件名将其保存到磁盘。

    【讨论】:

    • 所以本质上数据的接收方式没有区别?当我启动 NSURLConnection 并将 NSURLRequest 设置为blah.com/download.php?id=123 之类的 URL 时,它应该能够建立连接并通过- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
    • 当然,MIME 类型只是提示用户代理如何处理内容。
    • 感谢您的澄清!
    猜你喜欢
    • 2010-12-05
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    相关资源
    最近更新 更多