2011-12-20 73 views
1
NSString *urlString1 = @"http://www.php.eminosoft.com/123singles/upload.php"; 

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:urlString1]]; 
[request setHTTPMethod:@"POST"]; 

NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; 
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
[request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

NSMutableData *body = [NSMutableData data]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];  
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"uploadedfile\"; filename=\"song.mp3\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 

[body appendData:[[NSString stringWithString:@"Content-Type:application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 

[body appendData:[NSString stringWithString:secondString]]; 

[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];  

[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"username\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithString:@"demo"] dataUsingEncoding:NSUTF8StringEncoding]]; 


[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];  

[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"type\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithString:@"5"] dataUsingEncoding:NSUTF8StringEncoding]]; 


[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

[request setHTTPBody:body]; 


NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 

我越來越像迴應:我如何上傳音頻文件到iPhone應用程序中的服務器?

「文件上傳成功」

但問題是文件內容的大小是以字節爲單位,音頻文件不支持播放。

請幫我,如何將音頻文件上傳到服務器?

+1

你有什麼問題?你說問題是「文件內容的大小是以字節爲單位」。你能解釋一下你的問題嗎? –

+1

不要做「sendSynchronousRequest」。使用NSURLConnection進行異步請求。它應該解決這個問題。 – samfisher

+0

哪裏是mp3的NSData內容?它寫成'[body appendData:[NSString stringWithString:secondString]];'它應該是 –

回答

0

您可以嘗試使用FTP發送音頻文件,因爲音頻文件很大,因此需要很長時間才能上傳到服務器。 FTP縮短了這段時間。希望有所幫助。

+0

可以請你上傳音頻文件的FTP上傳任何其他有用的教程等代碼。 – 2014-01-09 06:12:59

0

我使用ASIHTTPRequest上傳音頻文件像下面,

NSURL *audiourl = [NSURL URLWithString:@"Your Url"]; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:audiourl]; 
NSData *postData = [NSData dataWithContentsOfURL:SoundPath]; 
//SoundPath is your audio url path of NSDocumentDirectory. 
[request addData:postData withFileName:@"myAudio.caf" andContentType:@"audio/caf" forKey:@"company_audio"]; 
[request setDelegate:self]; 
[request startSynchronous]; 

這樣,您就可以輕鬆地上傳音頻文件在服務器上。

+0

hardik你可以給我你的上傳的示例代碼我在我的代碼有麻煩,我不能得到任何解決方案我的應用程序在上傳時掛起。 – parag

+0

@Hardik Shah:只有這些代碼行足以發送音頻文件到服務器。因爲我已經試過這段代碼,但沒有奏效。我應該在上面的代碼中添加其他內容嗎? –

相關問題