Saving image to Documents directory and retrieving for email attachment Saving image to Documents directory and retrieving for email attachment ios ios

Saving image to Documents directory and retrieving for email attachment


- (IBAction)getImage {    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);    NSString *documentsDirectory = [paths objectAtIndex:0];    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];    UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];}

This should get you started!


Swift 3

// Create a URLlet documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).firstlet imageURL = documentsURL?.appendingPathComponent("MyImageName.png")// save image to URLlet myImage = imageView.image! // or wherever you have your UIImagedo {    try UIImagePNGRepresentation(myImage)?.write(to: imageURL!)} catch {}// Use the URL to retrieve the image for sharing to email, social media, etc.// docController.URL = imageURL// ...

I force unwrapped some of the optionals for brevity. Use guard or if let in your code.


Because each iPhone app is in it's own sandbox, you don't have access to a device-wide documents folder. To attach an image to an email, save the image in your own documents folder. Try using [@"~/Documents" StringByExpandingTildeInPath] to get your local documents folder - that works for me. It looks like the technique you're using for attaching the image to an email is correct.

Hope that helps,