从服务器下载图像,没有文件扩展名(NSData到UIImage)

时间:2012-06-26 02:49:12

标签: iphone ios uiimage nsdata nsurl

从我的服务器上我拉下了一个应该只是个人资料图片的网址。从网址下拉图像的相关代码是:

NSString *urlString = [NSString stringWithFormat:@"%@%@",kBaseURL,profile_image_url];
profilePic = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]];

我的网址采用格式(请注意,自动态呈现以来,文件扩展名没有结束)

localhost:8000/people/1/profile_image

如果我在浏览器中加载网址,则显示图片;但是上面用于下拉UIImage的代码不起作用。我已经验证了代码确实从互联网上的随机站点中提取图像。

有关为何发生这种情况的任何想法?

3 个答案:

答案 0 :(得分:4)

如果您提供NSURL

,它是否有效
http://localhost:8000/people/1/profile_image

我认为http://在这里很重要(因此NSURL知道它是指向文件还是远程URL)。

答案 1 :(得分:1)

你无法在UIImageView中显示它的原因是因为UIImageView不知道它是什么格式(jpeg,png等)
未来编码的一个好方法是始终使用扩展。 不要采取捷径,他们总是会变得更糟,你必须一遍又一遍地修复它们。

答案 2 :(得分:0)

首先检查以下内容:

权限:从只读更改为读写。

我在我的项目中尝试了很多方法来显示来自服务器的图片,我发现的最突出的问题是默认情况下,你的localhost文件夹是只读的,你需要更改权限....最初我认为如果我只是加载图片,请阅读wudnt问题,因为技术上我只阅读内容,对。但它确实很重要。

空格

您要检查的另一件事是包含空格的图片名称,如果是,则需要在发出网址请求时从图片名称中删除空格。

如果没有任何效果,请尝试添加扩展程序 如果eveythings正常,请尝试使用扩展程序加载图像,这显然可以正常工作。

为我们提供一些初始编码

告诉我们您的代码段和控制台输出,它们可以帮助社区以更突出的方式解决问题。