以下是我正在尝试实施的快速流程:
非常直接,或者看起来如此!
到目前为止,我可以让UIImagePickerController允许用户从相机胶卷中选择一张图像,并且可以获得图像的NSURL:
NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
这会返回如下内容:
assets-library://asset/asset.JPG?id=ACE09510-60D8-41EF-BC26-0A0A4D57B21C&ext=JPG
现在,跳到第2部分,我可以使用CFNetwork框架将文件成功FTP到远程服务器。
此处缺少的链接似乎是将资产库格式化的NSURL(* assetURL)转换为NSFileManager使用的标准文件格式URL。
如果我使用指向我的应用程序包中已经存在的.jpg的硬编码文件URL,我可以成功将其FTP出来。但是,如果我使用assets-library格式的URL,则在另一端获得零字节。
我的问题是如何将资产库URL转换为常规文件URL? 我已经看到了如何将相机胶卷图像复制到我的文档目录的示例。然后我想我可以使用该文件URL来发送图像。但是,如果我打算发送视频,将一个巨大的文件复制到Documents目录只是为了将其发送出去是不明智的。
我确实意识到FTP并不是首选的协议,并且是通过漏洞进行的。然而,它是一个现有的FTP服务器,我被告知“应该使用它”由支付我的权力。
我显然错过了一两个关于如何实现这个的概念。非常感谢任何能指出我正确方向的人。
答案 0 :(得分:2)
不幸的是,你没有获得iOS中Assets目录的文件级访问权限(这解释了为什么你不能自己引用照片文件),但你仍然可以使用ALAssetLibrary创建你需要的东西来创建来自存储在URL的数据的图像。查看this question,的答案,其中显示了如何使用ALAssetRepresentation对象创建UIImage。使用此技术,您应该能够获取发送到FTP服务器所需的图像数据。