0

mp3またはその他の一般的なオーディオ形式のオーディオファイルをサーバーに送信する必要があるアプリケーションをコーディングしています。NSURLConnectionこの接続を確立するためにインスタンスを使用しています。情報を受け取るファイルが.phpであるため、postメソッドを使用しています。同じ接続で、ほとんどが文字列と整数である他のパラメーターを送信する必要があります。私が直面している問題は、実際にオーディオファイルを送信してサーバーで受信することです。次のコードを使用して接続を構築しています:

NSMutableURLRequest *localRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"whateverphpfile"]];
[localRequest setHTTPMethod:@"POST"];
[self setRequest:localRequest];
[localRequest release];

NSMutableData *body = [[NSMutableData alloc] init];

NSString *testerSTR = [NSString stringWithFormat:@"file=%@", [[NSBundle mainBundle] pathForResource:@"header" ofType:@"png"]];
[body setData:[testerSTR dataUsingEncoding:NSUTF8StringEncoding]];

//_request is of type NSMutableURLRequest
[_request setHTTPBody:body];
//[_request setValue:@"multipart/form-data" forHTTPHeaderField:@"enctype"];
[_request setValue:@"multipart/form-data" forHTTPHeaderField:@"content-type"];

NSLog(@"the body sent is: %@", [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding]);

_connection = [[NSURLConnection alloc] initWithRequest:_request delegate:self];

if (_connection)
{
    [self setWebData:[NSMutableData data]];
}
else
{
    NSLog(@"theConnection is NULL");
}

また、データをチェックしてデバイスに返すときの問題は、データがのような大きな文字列であるということです<564024S D451475 DS5752... ...552D4S5>。実際のオーディオファイルを受信するにはどうすればよいですか、またはその大きな文字列をネイティブiOSクラスで読み取り可能なオーディオファイルに変換するにはどうすればよいですか?

4

1 に答える 1

0

データをmultipart/form-data形式で送信する必要があります。このトピックの2番目の答えには、まさにそれを実行する必要があるコードがあります。ファイルを非同期にアップロードするNSURLConnection?

それを実行できるASIHTTPRequestライブラリを使用することもできます。

于 2012-06-20T03:47:01.613 に答える