<分区>
我创建了一个有两页的应用程序(第一页用于显示数据列表,第二页用于显示详细数据)。
当单击任何单元格时,转到下一页,下一页中存在一个名称为“下载”的按钮 当我点击那个按钮时我想要这个文件下载并保存在文档文件夹中。 我不知道。请指导我如何下载任何文件并将其存储在文件夹中。 我在网上搜索,但我不明白。
请用代码告诉我如何用一个按钮下载任何文件。如果我英语不好,我很抱歉。
<分区>
我创建了一个有两页的应用程序(第一页用于显示数据列表,第二页用于显示详细数据)。
当单击任何单元格时,转到下一页,下一页中存在一个名称为“下载”的按钮 当我点击那个按钮时我想要这个文件下载并保存在文档文件夹中。 我不知道。请指导我如何下载任何文件并将其存储在文件夹中。 我在网上搜索,但我不明白。
请用代码告诉我如何用一个按钮下载任何文件。如果我英语不好,我很抱歉。
最佳答案
就是这么简单,我的 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];
}
建议在单独的线程中执行代码。
编辑 1:更多信息
1) 对于大文件下载,
-(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 !");
});
}
});
}
关于ios - 如何从url下载文件并存储在文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16392420/