2016-04-01 3 views
0

NSDataをサーバーにアップロードしたいのですが、私はマルチパートアプローチを使用しています。これについてはいくつかの質問がありますが、iOS上で大きなファイルを処理できるようにするため、メモリにアセットを完全にロードすることは必ずしもオプションではありません。ディスクからファイルをストリームできるかどうか、マルチパートリクエストに変換します。ストリームからマルチパートでNSDataをアップロードしますか?

この: File Upload to HTTP server in iphone programming

は、私が見つけた多くの質問の一つですが、あなたは、彼らがメモリにデータをロードして、一度に要求にそれを固執見ることができるように:

[postbody appendData:[NSData dataWithData:YOUR_NSDATA_HERE]]; 

どれでもアイディア?

答えて

0

あなたがNSURLSessionを使用している場合は、そのファイルの内容をアップロードするuploadTaskWithRequest:fromFile:を使用することができ、およびタスクファイルを読む責任があります。おそらく、タスクはファイルをチャンクで読み込みます。

ファイルにデータがない場合は、uploadTaskWithStreamedRequest:を使用できます。タスクに入力ストリームを提供するために、URLSession:task:needNewBodyStream:を実装するデリゲートをタスクに提供します。 NSInputStreamを実装して、データのチャンクを返すことができます。

関連する問題