从资产网址获取文件路径

时间:2014-04-02 12:47:43

标签: ios objective-c asihttprequest

我正在使用ASIHTTPRequest将图像发送到POST HTTP请求中的服务器。 该图像保存在手机图库中,我可以使用它的" assets url"来显示它,这是这样的: ?资产库://asset/asset.PNG ID = F2B91A20-615E-4E88-B9AF-8D209A587505&安培; EXT = PNG

但我的问题是我不想将整个图像加载到内存中发送它,所以我想用它的真实网址来获取并发送它。

这是我的代码:

- (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];
}

主要问题是,当我使用资产网址appendPostDataFromFile:时,此资产网址不会返回图片,只返回nil并且不起作用。

我需要获取该图像的真实文件路径才能使用它,而不是资产网址。

在我在这里发现的一些帖子中,我发现由于沙盒,你无法从AssetsLibrary获得实际的文件路径,所以......我怎么能解决它?

非常感谢!!

1 个答案:

答案 0 :(得分:0)

正如您所发现的,您的选择非常有限。沙盒阻止您获得“真实”文件:/// url。您唯一的选择是将图像读入内存(并可选择将其写入应用程序文档或临时文件夹)通过复制文件,您至少可以减少长期内存使用,尽管短期使用是还是很高。