0

I am newbie for iPhone application.

What I want is save the image on server. What I have is button. On clicking, it ask for photo or library and I select image.

But I am not getting how to save this image on server.

#pragma mark - UIActionSheetDelegate

- (void)actionSheet:(UIActionSheet *)theActionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 0) {
        [self takePhotoCam];
    } else if (buttonIndex == 1) {
        [self choosePhotoFromLibrary];
    }
}


- (IBAction)takePhotoAction:(id)sender {
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        UIActionSheet *actionSheet = [[UIActionSheet alloc]
                                      initWithTitle:nil
                                      delegate:self
                                      cancelButtonTitle:@"Cancel"
                                      destructiveButtonTitle:nil
                                      otherButtonTitles:@"Take Photo", @"Choose From Library", nil];

        [actionSheet showInView:self.view];
    } else {
        [self choosePhotoFromLibrary];
    }
}

- (void)takePhotoCam {
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.delegate = self;
    imagePicker.allowsEditing = YES;
    [self.navigationController presentViewController:imagePicker animated:YES completion:nil];
}

- (void)choosePhotoFromLibrary {
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.delegate = self;
    imagePicker.allowsEditing = YES;
    [self.navigationController presentViewController:imagePicker animated:YES completion:nil];
}
Fahim Parkar
  • 30,974
  • 45
  • 160
  • 276

2 Answers2

0
- (void)uploadImageToServer:(NSMutableArray*)imgArray{
    if (!self.networkQueue){
        self.networkQueue = [[ASINetworkQueue alloc] init];
    }
    [self.networkQueue reset];
    self.progressValueLabel.text = @"0 %";
    self.lblImageUplodInfo.text  = @"Processing..."; 
    self.networkQueue.shouldCancelAllRequestsOnFailure = NO;
    [self.networkQueue setRequestDidFailSelector:@selector(imageUploadFailed:)];
    [self.networkQueue setQueueDidFinishSelector:@selector(imageUploadComplete:)];
    [self.networkQueue setRequestDidFinishSelector:@selector(imageUploadRequestComplete:)];
    [self.progressView performSelectorOnMainThread:@selector(setProgress:) withObject:nil waitUntilDone:YES];
    [self.progressValueLabel performSelectorOnMainThread:@selector(setText:) withObject:@"0 %" waitUntilDone:YES];
    [self.networkQueue setUploadProgressDelegate:self.progressView];
    self.progressView.progress=0.0f;
    self.networkQueue.shouldCancelAllRequestsOnFailure = NO;
    [self.networkQueue setDownloadProgressDelegate:self];
    [self.networkQueue setShowAccurateProgress:YES];
    [self.networkQueue setDelegate:self];


    self.lblImageUplodInfo.text=@"Uploading..";
    [self.networkQueue setShowAccurateProgress:YES];
    [self.networkQueue setDelegate:self];


    for(int i=0;i<[imgArray count];i++)
    {
        if([[[imgArray objectAtIndex:i] objectForKey:@"isSync"] isEqualToString:@"0"])
        {
             ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:[WebService getAddPhoto]]];
             [request setUserInfo:[NSDictionary dictionaryWithDictionary:[imgArray objectAtIndex:i]]];
             [request addPostValue:project_id forKey:@"project_id"];
             [request addPostValue:[[imgArray objectAtIndex:i] valueForKey:@"vComments"] forKey:@"comment"];
             NSData *imageData = UIImagePNGRepresentation([UIImage imageWithContentsOfFile:[[imgArray objectAtIndex:i] valueForKey:@"vPhoto"]]);
             NSString *encodedString = [imageData base64EncodingWithLineLength:[imageData length]];
             [request addPostValue:encodedString forKey:@"Photo"];
             [request setDelegate:self];
             [request setTimeOutSeconds:300]; 
             [self.networkQueue addOperation:request];

 }
[self.networkQueue go];
}
Manu
  • 4,730
  • 2
  • 20
  • 45
0

Below is the link that solved my problem.

How to save image on server

Hope this helps someone...

Fahim Parkar
  • 30,974
  • 45
  • 160
  • 276