选择和FTP相机胶卷图像

时间:2012-02-22 08:10:22

标签: objective-c ios5 ftp camera

以下是我正在尝试实施的快速流程:

  1. 用户选择现有的相机胶卷图像或视频。
  2. 应用程序将所选图像FTP到远程FTP服务器。
  3. 非常直接,或者看起来如此!

    到目前为止,我可以让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服务器,我被告知“应该使用它”由支付我的权力。

    我显然错过了一两个关于如何实现这个的概念。非常感谢任何能指出我正确方向的人。

1 个答案:

答案 0 :(得分:2)

不幸的是,你没有获得iOS中Assets目录的文件级访问权限(这解释了为什么你不能自己引用照片文件),但你仍然可以使用ALAssetLibrary创建你需要的东西来创建来自存储在URL的数据的图像。查看this question,的答案,其中显示了如何使用ALAssetRepresentation对象创建UIImage。使用此技术,您应该能够获取发送到FTP服务器所需的图像数据。