2013-02-26 49 views
0

我對Objective-C/Cocoa開發比較陌生。我目前正在研究Mac應用程序,我需要使用HTTP PUT請求將文件上傳到Web服務器。我想將文件分成幾個塊並將其傳輸到服務器,而不是將整個文件讀入內存並一次上傳。Objective-C/Cocoa Chunked文件上傳

我遇到過幾個第三方庫(即:ASIHTTPRequest,AFNetworking),它們可以支持開箱即用的功能。但是,由於項目的一些限制,我想暫時不使用第三方。

在這方面的任何援助是非常感謝。在此先感謝:)

回答

0

如果您只是上傳文件,沒有多部分MIME包裝,那麼我相信你可以直接從NSMutableURLRequest設置輸入流。使用+ [NSInputStream inputStreamWithFileAtPath:]爲磁盤上的文件獲取NSInputStream非常簡單。我沒有完全做到這一點,但我認爲它會起作用。

如果你最終需要做一個多部分MIME包裝,那麼我建議使用一個庫。要獲得正確的結果是一件非常痛苦的事情,並且根據你所運行的操作系統版本有一些怪癖。

+0

感謝您的信息。我可能在這裏是錯誤的,但從我在NSMutableURLRequest(setHTTPBodyStream方法)的官方文檔中可以看到,我們需要在將請求主體發送到服務器之前設置完整的內容。這實際上意味着我們需要將文件的全部內容讀入內存中嗎? – 2013-03-12 05:57:28

+0

從蘋果文檔:「inputStream應該是未開啓的,並且接收器將接管流的委託。」我也堅持這個問題,我沒有在內存中的整個流內容... – Tronix117 2014-03-19 11:14:01