6

サイズの大きな動画を iPhone から Web サーバーにアップロードしたいと考えています。以下のコードで試しました。小さなファイルでは機能しますが、大きなファイルをアップロードしようとするとクラッシュします。

コード:

NSMutableURLRequest *request = [NSMutableURLRequest
                                requestWithURL:[NSURL URLWithString:@"https://XXXXXXXXXXXXXXXX/submit.php"]];

NSData *webData = [NSData dataWithContentsOfURL:movieUrl];
NSString *postLength = [NSString stringWithFormat:@"%d", [webData length]];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];

---- added some HTTP headers here ----

[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];

NSMutableData *postbody = [NSMutableData data];
[postbody appendData:[NSData dataWithData:webData]];
[request setHTTPBody:postbody];

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

調査の結果、大きなファイルをデータのチャンクで送信すると、これが可能になるというアイデアが得られました。ソリューション 1ソリューション 2

Stream Programming apple docも調べました。 しかし、サーバーの NSURL を定義する場所がわかりません。データを出力ストリームに書き込んだ後、サーバーに送信する方法。

誰かが私に動作中のコードを教えてくれれば、それをよりよく理解できるでしょう。

どうやってするか?アイデアはありますか?

4

0 に答える 0