Eu conheço o seu problema.. Eu enfrentei o problema smilar.. Você tem que dar o caminho para a imagem.. O código a seguir irá obter a imagem do caminho.. se a imagem estiver no índice do seu diretório, você deve obter o caminho um pouco diferente .. Tente isso e me avise ..
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"photo.jpg"];
[request setFile:[NSURL URLWithString:dataPath] forKey:@"photo"];
//IF the photo is in directory index use the following code to get the url
NSString *filename = [[NSBundle mainBundle] pathForResource:@"photo" ofType:@"png"];
[request setFile:[NSURL URLWithString:filename] forKey:@"photo"];
Ok, aqui está o código que você precisa escrever para UIImagePicker
- (void) imagePickerController:(UIImagePickerController *)thePicker didFinishPickingMediaWithInfo:(NSDictionary *)imageInfo
{
imagePicker = nil;
UIImage *image = [imageInfo objectForKey:@"UIImagePickerControllerEditedImage"];
image = [image roundedCornerImage:23.5 borderSize:1];
// Get the data for the image as a JPEG
NSData* imageData = UIImageJPEGRepresentation(image, 0.5);
// Give a name to the file
NSString* imageName = @"photo.png";
// Now, we have to find the documents directory so we can save it
// Note that you might want to save it elsewhere, like the cache directory, or something similar.
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths objectAtIndex:0];
// Now we get the full path to the file
NSString* fullPathToFile = [documentsDirectory stringByAppendingPathComponent:imageName];
[imageData writeToFile:fullPathToFile atomically:NO];
myPicture = imageData;
myPicturePath = fullPathToFile;
// Dismissing the image picker view
[self dismissModalViewControllerAnimated: YES];
}
Ao fazer o upload da imagem, use este código.. Você terá o caminho myPicture definido no seletor de imagens.
Request setFile:myPicturePath forKey:@"photo"];
O código a seguir é para obter a imagem do diretório de documentos e enviá-la.
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths objectAtIndex:0];
// Now we get the full path to the file
NSString* fullPathToFile = [documentsDirectory stringByAppendingPathComponent:@"photo.png"];
[imageData writeToFile:fullPathToFile atomically:NO];
[Request setFile:fullPathToFile forKey:@"photo"];