从 assets url 获取文件路径
Posted
技术标签:
【中文标题】从 assets url 获取文件路径【英文标题】:Get file path from assets url 【发布时间】:2014-04-02 12:47:42 【问题描述】:我正在使用ASIHTTPRequest
将图像发送到 POST HTTP 请求中的服务器。
该图像被保存到手机图库中,我可以使用它的“assets url”获取它并显示它,如下所示:
assets-library://asset/asset.PNG?id=F2B91A20-615E-4E88-B9AF-8D209A587505&ext=PNG
但我的问题是我不想将整个图像加载到内存中发送,所以我想使用它的真实 url 来获取它并发送它。
这是我的代码:
- (void)startPostWithMedia
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request setRequestMethod:@"POST"];
NSString *stringBoundary = [NSString stringWithFormat:@"--%@", @"12345"];
NSString * fullContentType = [[NSString alloc]initWithFormat:@"%@;boundary=%@", contentType, stringBoundary];
[request addRequestHeader:CONTENT_TYPE_HDR value:fullContentType];
[request appendPostDataFromFile:[mediaUrl absoluteString]];
[self retain];
[request startAsynchronous];
主要问题是,当我使用assets url 使用appendPostDataFromFile:
时,这个assets url 不返回图像,只返回nil 并且不起作用。
我需要获取该图像的真实文件路径才能使用它,而不是资产 url。
在我在这里找到的一些帖子中,我发现由于沙盒,您无法从 AssetsLibrary 获取实际的文件路径,所以...我该如何解决?
非常感谢!!
【问题讨论】:
要访问手机图库,请使用 UIImagePickerController。在相应的委托中,您将找到图像路径。 我得到的是资产路径......不是我在这里问的。 然后从资产 URL 获取图像,将其存储在某个已知位置,共享该 URL 的路径。 改为自定义路径 【参考方案1】:正如您所发现的,您的选择确实非常有限。沙盒会阻止您获取“真实”的 file:/// url。您唯一的选择实际上是将图像读入内存(并可选择将其写入应用程序文档或临时文件夹)通过制作文件副本,您至少可以减少长期内存使用量,尽管短期使用量是仍然很高。
【讨论】:
以上是关于从 assets url 获取文件路径的主要内容,如果未能解决你的问题,请参考以下文章