Conosco il tuo problema.. Ho affrontato un problema simile.. Devi fornire il percorso per l'immagine.. Il codice seguente otterrà l'immagine dal percorso.. se l'immagine è nell'indice della tua directory devi ottenere il percorso leggermente diverso.. Prova questo e fammi sapere..
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, ecco il codice che devi scrivere per 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];
}
Durante il caricamento dell'immagine usa questo codice.. Avrai il percorso myPicture impostato dal selettore di immagini..
Request setFile:myPicturePath forKey:@"photo"];
Il codice seguente serve per ottenere l'immagine dalla directory dei documenti e inviarla.
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"];