【问题标题】:Objective-C/Cocoa Chunked File UploadObjective-C/Cocoa 块文件上传
【发布时间】:2013-02-27 00:05:23
【问题描述】:

我对 Objective-C/Cocoa 开发比较陌生。我目前正在开发一个 Mac 应用程序,我需要使用 HTTP PUT 请求将文件上传到 Web 服务器。我想将文件分成几个块并将其流式传输到服务器,而不是将整个文件读入内存并一次性上传。

我遇到过几个第三方库(即:ASIHTTPRequest、AFNetworking),它们可以开箱即用地支持此功能。但是,由于项目的一些限制,我想暂时不使用第三方。

非常感谢您在这方面的任何帮助。在此先感谢:)

【问题讨论】:

    标签: objective-c cocoa file-upload


    【解决方案1】:

    如果您只是上传文件,没有 Multipart MIME 包装器,那么我相信您可以直接从 NSMutableURLRequest 设置输入流。使用 +[NSInputStream inputStreamWithFileAtPath:] 为磁盘上的文件获取 NSInputStream 很容易。我自己还没有完全做到这一点,但我认为它会起作用。

    如果您最终需要执行 Multipart MIME 包装器,那么我建议您使用库。做对是一件很痛苦的事,并且根据您运行的操作系统版本,有一些怪癖需要处理。

    【讨论】:

    • 感谢您的信息。这里我可能错了,但是从我在 NSMutableURLRequest (setHTTPBodyStream 方法)的官方文档中可以看到,我们需要在发送到服务器之前设置请求体的完整内容。这本质上意味着我们需要将文件的全部内容读入内存不是吗?
    • 来自苹果文档:“inputStream 应该是未打开的,并且接收者将作为流的代表接管。”我也被这个问题困住了,我的内存中没有整个流内容......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多