J'ai créé une application qui a deux pages (première page pour afficher la liste des données et deuxième page pour afficher les données détaillées).
lorsque vous cliquez sur une cellule, passez à la page suivante et dans la page suivante existe un bouton avec le nom: TÉLÉCHARGEZ ce que je veux quand je clique sur ce bouton téléchargez ce fichier et enregistrez-le dans le dossier du document. Je n'en sais rien. veuillez me guider sur la façon de télécharger n'importe quel fichier et de le stocker dans le dossier de documents. Je cherche sur internet mais je n'y comprends rien.
s'il vous plaît dites-moi avec le code que comment téléchargé n'importe quel fichier avec un seul bouton. Je suis désolé si je ne parle pas bien l'anglais.
C'est aussi simple mon ami,
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];
}
il est conseillé d'exécuter le code dans un thread séparé.
EDIT 1: plus d'infos
1) pour les téléchargements de fichiers volumineux,
-(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 !");
});
}
});
}