【问题标题】:Get Image from server从服务器获取图像
【发布时间】:2016-03-23 05:36:50
【问题描述】:

我得到这样的 responseObject

响应对象 = { "img": "图像/ProfileImage/defaultImg.jpg", }

我必须将此图像存储在 app 文件夹中。有没有办法做到这一点。

【问题讨论】:

  • 图片的完整网址是什么?您发布的任何对象都没有完整路径,没有完整路径就无法从服务器下载。
  • 如果你只得到一个路径,为什么你不需要保存到文件夹中,只需添加到 NSuserdefault 它就足够了
  • OP 想要将图像存储到目录而不是 URL。

标签: ios json image afnetworking


【解决方案1】:

路径不完整

您需要在“images/ProfileImage/defaultImg.jpg”之前附加基本 URL

然后

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSString *urlToDownload = BaseURL + "images/ProfileImage/defaultImg.jpg";
    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,@"defaultImg.png"];
        //saving is done on main thread
        dispatch_async(dispatch_get_main_queue(), ^{
            [urlData writeToFile:filePath atomically:YES];
            NSLog(@"File Saved !");
        });
    }

});

【讨论】:

  • 我可以在文档目录中创建文件夹。但我需要在手机中为应用程序创建文件夹。前任。在android手机中,如果我们下载whatsApp,它将在我的文件/ sdcard中显示whatsApp文件夹,并且在whatsApp文件夹中将有不同的文件夹,例如WhatsApp图像,WhatsApp视频,WhatsApp文档等...
【解决方案2】:

这是下载图像并存储到本地的代码,即 iOS 应用程序文件夹中的“文档”目录

下面代码中urlString是图片的url。

dispatch_queue_t downloadThumbNail = dispatch_queue_create("com.download.thumbnail", NULL);
    dispatch_async(downloadThumbNail, ^
    {
        NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
        UIImage *imageThumb = [UIImage imageWithData:imageData];
        dispatch_async(dispatch_get_main_queue(),
        ^{
            NSString *str = @“filename.png”;
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *documentsPath = [paths objectAtIndex:0];
            NSString *filePath = [documentsPath stringByAppendingPathComponent:str];
            NSData *pngData = UIImagePNGRepresentation(imageThumb);
            [pngData writeToFile:filePath atomically:YES];
        });
    });

享受编码。

【讨论】:

  • 嘿,这将在 pc 中创建文件夹,但我想创建具有 appName 的文件夹 iPhone,其中有 2 个文件夹 profileImage 和 postImage。我想将此图像存储在 profileImage 文件夹中。
猜你喜欢
  • 2018-07-04
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
  • 2010-11-20
  • 2019-07-30
  • 2012-02-20
相关资源
最近更新 更多