2011-11-18 39 views
1

我現在要構建一個非常複雜的(至少對我來說)應用程序。基本的應用程序如下:上傳視頻與目標c

帶有兩個選項卡的標籤欄應用程序,一個用於本地視頻,另一個用於流式傳輸視頻。

這個階段很簡單,但現在我必須上傳視頻(從iphone畫廊或用戶拍攝)到服務器。

真的不知道該怎麼做。請幫幫我。

+0

你有什麼迄今所做? –

+0

沒有關於上傳部分。截至目前,該應用程序在以本地視頻播放的資源文件夾中有一個視頻。並且一個視頻的網址靜態保存在代碼中,並在需要時播放和播放。 –

+0

你需要在服務器上傳視頻的代碼嗎? – Gypsa

回答

9
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
    { 
    NSURL *urlvideo = [info objectForKey:UIImagePickerControllerMediaURL]; 


    urlvideo contains the URL of that video file that has to be uploaded. Then convert the url into NSString type because setFile method requires NSString as a parameter 

    NSString *urlString=[urlvideo path]; 

    NSLog(@"urlString=%@",urlString); 
    NSString *str = [NSString stringWithFormat:@"path of server"]; 
    NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
    [request setFile:urlString forKey:@"key foruploadingFile"]; 
    [request setRequestMethod:@"POST"]; 
    [request setDelegate:self]; 
    [request startSynchronous]; 
    NSLog(@"responseStatusCode %i",[request responseStatusCode]); 
    NSLog(@"responseStatusCode %@",[request responseString]); 
    } 

希望這段代碼能夠節省你幾個小時。

+0

謝謝Gypsa ... –

+1

你可以使用AFNetworking更新代碼嗎? –

0

使用AFNetworking:

NSURL *url = [NSURL URLWithString:@"http://api-base-url.com"]; 
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; 
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"avatar.jpg"], 0.5); 
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { 
    [formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"]; 
}];