サイズの大きな動画を 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 を定義する場所がわかりません。データを出力ストリームに書き込んだ後、サーバーに送信する方法。
誰かが私に動作中のコードを教えてくれれば、それをよりよく理解できるでしょう。
どうやってするか?アイデアはありますか?