Monday, August 1, 2011

Take Video from iPhone And Upload to server

-(IBAction)displayCamera :(id)sender
{
 
    BOOL canShootVideo = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
   
    if (canShootVideo) {
        UIImagePickerController *videoRecorder = [[UIImagePickerController alloc] init];
        videoRecorder.sourceType = UIImagePickerControllerSourceTypeCamera;
      
        videoRecorder.cameraDevice = UIImagePickerControllerCameraDeviceRear;
        videoRecorder.videoMaximumDuration = 5;
        BOOL capture = [videoRecorder startVideoCapture];
      
        videoRecorder.delegate = self;
       
        NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
        NSArray *videoMediaTypesOnly = [mediaTypes filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(SELF contains %@)", @"movie"]];
        BOOL movieOutputPossible = (videoMediaTypesOnly != nil);
       
        if (movieOutputPossible) {
            videoRecorder.mediaTypes = videoMediaTypesOnly;
           
            [self presentModalViewController:videoRecorder animated:YES];          
        }
        [videoRecorder release];
    }
   
   
    else
    {
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Camera Demo" message:@"Device Lacks Camera" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
       
        [alert show];
        [alert release];
    }
   
}
- (void) imagePickerController: (UIImagePickerController *) picker didFinishPickingMediaWithInfo: (NSDictionary *) info {
   
      NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
   
    //check the media type string so we can determine if its a video
    if ([mediaType isEqualToString:@"public.movie"]){
               NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
               NSData *webData = [NSData dataWithContentsOfURL:videoURL];
             [self post:webData];
 
       
    }
   
   
}





- (void)post:(NSData *)fileData{
   
    NSMutableURLRequest* post = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: @"Your URL where you want to post video"]];
    [post setHTTPMethod: @"POST"];
   
   
    NSString *boundary = [NSString stringWithString:@"---------------------------358734318367435438734347"];
   
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
   
    [post 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=\"userfile\"; filename=\"vijay.mpeg\"\r\n", ] dataUsingEncoding:NSUTF8StringEncoding]];

   
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@\"\r\n", self.videoName] dataUsingEncoding:NSUTF8StringEncoding]];
   
    [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
   
    [body appendData:fileData];
   
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
   
   
    [post setHTTPBody:body];
   
    NSData *returnData = [NSURLConnection sendSynchronousRequest:post returningResponse:nil error:nil];
   
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
   
 
   
}

No comments:

Post a Comment