ios - 如何从url下载文件并存储在文件夹中

标签 ios objective-c download

<分区>

我创建了一个有两页的应用程序(第一页用于显示数据列表,第二页用于显示详细数据)。

当单击任何单元格时,转到下一页,下一页中存在一个名称为“下载”的按钮 当我点击那个按钮时我想要这个文件下载并保存在文档文件夹中。 我不知道。请指导我如何下载任何文件并将其存储在文件夹中。 我在网上搜索,但我不明白。

请用代码告诉我如何用一个按钮下载任何文件。如果我英语不好,我很抱歉。

最佳答案

就是这么简单,我的 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/

相关文章:

r - 使用Selenium和docker工具箱下载文件

android - 从 Android 网站下载

ios - 如何在加载 View 以适应屏幕宽度时更改 NIB 文件中 View 框架的宽度

objective-c - iOS/越狱上的 tcpdump

ios - 是否有适用于 Facebook 好友的人物选择器 View Controller ?

ios - 让约束在大小类中工作

objective-c - 关联对象会自动释放吗?

objective-c - 键盘事件 Objective C

javascript - XMLHttpRequest Access-Control-Allow-Origin 错误 Google Drive API

iphone - 如何比较 Objective C 中的日期