选择和FTP相机胶卷图片

3
这里有一个我正在尝试实现的快速流程:
  1. 用户选择现有的相机胶卷图像或视频。
  2. 应用程序将所选图像FTP到远程FTP服务器。
看起来很简单,不是吗?
到目前为止,我可以让 UIImagePickerController 允许用户从相机胶卷中选择图像,并使用以下代码获取图像的 NSURL:
NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];

这返回类似以下内容:
assets-library://asset/asset.JPG?id=ACE09510-60D8-41EF-BC26-0A0A4D57B21C&ext=JPG

现在,跳到第二部分,我可以成功地使用CFNetwork框架将文件FTP到远程服务器。
这里缺失的一环似乎是将assets-library格式的NSURL (*assetURL)转换为NSFileManager使用的标准文件格式URL。
如果我使用一个硬编码的文件URL指向我的应用程序包中已经存在的.jpg文件,我可以成功地将其FTP出去。然而,如果我使用assets-library格式的URL,我在另一端得到的是零字节。
我的问题就是,我该如何将assets-library URL转换为常规文件URL? 我已经看到了如何将相机胶卷图像复制到我的文档目录的示例。然后我想我可以使用那个文件URL来发送图像。但是,如果我打算发送视频,把一个巨大的文件复制到文档目录并不明智,因为它会占用很多空间。
我确实意识到FTP不是首选协议,并且存在安全漏洞。但是,它是一个现有的FTP服务器,而且我被支付的权力告诉我“你必须使用它”。
显然,我在实现这个过程中缺少一些概念。非常感谢任何能指导我正确方向的人。
1个回答

2

很遗憾,您在iOS中无法获得Assets目录的文件级访问权限(这就解释了为什么您无法引用照片文件本身),但是您仍然可以使用ALAssetLibrary创建一个图像并从URL存储的数据中获取所需内容。请查看此问题的答案,该答案展示了如何使用ALAssetRepresentation对象创建UIImage的方法。使用此技术,您应该能够获取所需的图像数据以发送到FTP服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接