如何上传一个mp3文件高达5 MB的大小在web服务器上的iPhone

我想从我的iPhone应用程序上传一个audio文件到networking服务器,但是当我把它转换成NSData的时候,它将花费30到40分钟的转换,所以你可以给它更好的解决scheme。

1)。将audio文件转换为NSData:

NSString *audioFilePath = @""; // local path where audio stored NSData *audioData = [[NSData alloc] initWithContentsOfFile:audioFilePath]; 

2)。上传audio文件:

 NSString *audioName = @"myAudio.caf"; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://someurl.aspx"]]; [request addData:audioData withFileName:audioName andContentType:@"audio/caf" forKey:@"audioFile"]; [request setDelegate:self]; [request setTimeOutSeconds:500]; [request setDidFinishSelector:@selector(uploadRequestFinished:)]; [request setDidFailSelector:@selector(uploadRequestFailed:)]; [request startAsynchronous]; - (void)uploadRequestFinished:(ASIHTTPRequest *)request { UIApplication* app = [UIApplication sharedApplication]; app.networkActivityIndicatorVisible = NO; NSData *webData = [[NSData alloc] initWithData:[request responseData]]; NSString *strEr = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding]; } - (void) uploadRequestFailed:(ASIHTTPRequest *)request { NSLog(@"responseStatusCode %i",[request responseStatusCode]); NSLog(@"responseString %@",[request responseString]); NSError *error = [request error]; UIApplication* app = [UIApplication sharedApplication]; app.networkActivityIndicatorVisible = NO; }