how to download files from url and store in document folder [duplicate] how to download files from url and store in document folder [duplicate] ios ios

how to download files from url and store in document folder [duplicate]


It is this simple my friend,

NSString *stringURL = @"http://www.somewhere.com/thefile.png";NSURL  *url = [NSURL URLWithString:stringURL];NSData *urlData = [NSData dataWithContentsOfURL:url];if ( urlData ){  NSArray       *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  NSString  *documentsDirectory = [paths objectAtIndex:0];    NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"filename.png"];  [urlData writeToFile:filePath atomically:YES];}

it advisable to execute the code in a separate thread.

EDIT 1: more info

1) for large file downloads,

-(IBAction) downloadButtonPressed:(id)sender;{    //download the file in a seperate thread.    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{        NSLog(@"Downloading Started");        NSString *urlToDownload = @"http://www.somewhere.com/thefile.png";        NSURL  *url = [NSURL URLWithString:urlToDownload];        NSData *urlData = [NSData dataWithContentsOfURL:url];        if ( urlData )        {            NSArray       *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);            NSString  *documentsDirectory = [paths objectAtIndex:0];            NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"filename.png"];            //saving is done on main thread            dispatch_async(dispatch_get_main_queue(), ^{                [urlData writeToFile:filePath atomically:YES];                NSLog(@"File Saved !");            });        }    });}