Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective-C/Cocoa分块文件上载_Objective C_Cocoa_File Upload - Fatal编程技术网

Objective-C/Cocoa分块文件上载

Objective-C/Cocoa分块文件上载,objective-c,cocoa,file-upload,Objective C,Cocoa,File Upload,我对Objective-C/可可粉开发相对较新。我目前正在开发一个Mac应用程序,需要使用HTTP PUT请求将文件上传到web服务器。我希望将文件分成几个块,并将其流式传输到服务器,而不是将整个文件读入内存并一次性上载 我遇到过几个第三方库(即ASIHTTPRequest、AFNetworking),它们可以支持这种开箱即用的功能。但是,由于项目的一些限制,我希望暂时不使用第三方 我们非常感谢在这方面提供的任何帮助。提前感谢:)如果您只是上传一个文件,没有多部分MIME包装器,那么我相信您可以

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

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


我们非常感谢在这方面提供的任何帮助。提前感谢:)

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


如果您最终需要进行多部分MIME包装,那么我建议您使用库。这是一件非常痛苦的事情,根据您运行的操作系统版本的不同,需要处理一些怪癖。

谢谢您提供的信息。这里我可能错了,但从NSMutableURLRequest(setHTTPBodyStream方法)的官方文档中可以看到,我们需要在将请求正文发送到服务器之前设置其完整内容。这基本上意味着我们需要将文件的全部内容读入内存,不是吗?来自苹果的文档:“inputStream应该是未打开的,接收者将作为流的代理。”我也被这个问题困扰着,我的内存中没有整个流的内容。。。