前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决“真机上不能读取本地路径”的问题d

解决“真机上不能读取本地路径”的问题d

作者头像
用户1451823
发布2018-09-13 17:17:24
7050
发布2018-09-13 17:17:24
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1338164

之前写了一个小demo,功能是获取相册中的某张图片并将此图片写入到本地,然后再从本地将此图片取出显示出来。有人会说这是干嘛啊?存进去再取出来。。。我这样做是为了将来上传图片的时候能用,如我们的上传头像功能。首先我们得选取相册中的图片,然后上传到远程服务器上。在上传图片的过程中,我们首先就得从本地取出图片。

可我却遇到了问题,在模拟器上取图片的时候是完全可以的,可当在真机上的时候就出现了问题。

对比图

模拟器上:

真机上:

遇到这种问题我实在不知道该怎么百度,于是去向他人请教。还是自己太菜,经高手指点才明白,原来是保存的路径有问题。

原代码:

#pragma mark 保存图片到document

  • (void)saveImage:(UIImage *)tempImage WithName:(NSString *)imageName

{

NSData * imageData = UIImageJPEGRepresentation(tempImage, 0.5); // 对图片进行了压缩

NSString * fullPathToFile = [NSHomeDirectory() stringByAppendingString:NSString stringWithFormat:@"/%@" ,imageName];

// and then we write it out

    imageData writeToFile:fullPathToFile atomically:NO;

// 将存入到沙盒的图片再取出来,目的是为了进行上传

NSLog(@"fullPathToFile:%@", fullPathToFile);

// 二进制的数据就可以进行上传

UIImage * image = UIImage imageWithContentsOfFile:fullPathToFile;

_image = image;

}

修改后的代码:

#pragma mark 保存图片到document

  • (void)saveImage:(UIImage *)tempImage WithName:(NSString *)imageName

{

NSData * imageData = UIImageJPEGRepresentation(tempImage, 0.5); // 对图片进行了压缩

NSString * fullPathToFile = [NSHomeDirectory() stringByAppendingString:NSString stringWithFormat:@“/Documents/%@" ,imageName];

// and then we write it out

    imageData writeToFile:fullPathToFile atomically:NO;

// 将存入到沙盒的图片再取出来,目的是为了进行上传

NSLog(@"fullPathToFile:%@", fullPathToFile);

// 二进制的数据就可以进行上传

UIImage * image = UIImage imageWithContentsOfFile:fullPathToFile;

_image = image;

}

还是保存路径的问题。沙盒基本路径分为Documents、Library、temp,在本目录层同一级不能自定义目录,系统不允许,可以随便存到这三个目录层的子集里。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年03月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档