【问题标题】:How to get document file for uploading to services from iOS app如何获取文档文件以从 iOS 应用程序上传到服务
【发布时间】:2015-05-10 14:14:52
【问题描述】:

所有, 我需要将文件上传到服务器,我一直致力于上传文件的服务,我已经对 png 进行了测试。

现在我需要从我的应用程序中选择 doc、xml、txt 文件。因为我可以从 iOS 应用程序中加载照片库,但是却将这些 doc、xml 和 txt 格式文件放入我的应用程序中。

如何将 xml、doc、txt 文件等文档导入我的项目应用程序。 (因为照片库不会显示这些文件。)苹果是否允许访问我的本地文件夹。

【问题讨论】:

  • 没有本地文件夹,文件按应用保存,只能由该应用访问。您也许可以注册您的应用,以便它可以打开文件,或者您可以使用 iCloud。

标签: objective-c iphone file-upload ios8 nsdocumentdirectory


【解决方案1】:

以下是获取应用程序目录中文件列表的方法。

// get the path of the application directory
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
        NSUserDomainMask, YES);
// Get a list of file at path
NSArray* files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path 
                                                                     error:nil];

然后你需要为用户构建一个界面来选择文件,浏览文件夹,上传到你的服务器等等。

参考:Working with Directories on iPhone OSNSSearchPathForDirectoriesInDomains

编辑:

不幸的是,iOS 与其他操作系统不同,例如 Android、MacOS 甚至 Windows。它没有适用于所有应用程序的共享文档文件夹。 xml、docs等内容保存在各个app的文档下。如果您以前从未使用过 iOS,那可能听起来很奇怪。但是,保持手机清洁非常方便。只要一个应用程序被删除,它创建的所有垃圾数据也会被删除。

但是,您仍然可以在应用程序之间发送数据,这称为Inter-App Communication。您需要执行以下操作来处理发送到您的应用的文档:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation

另外,了解following 也很重要。简而言之,您需要让您的应用知道它接受哪些数据。例如,Adobe App 将采用任何 .pdf 文件;而 Dropbox App 将获取任何文件,因为它们无论如何都会被上传。

您需要注册您的应用程序可以使用 iOS 打开的文档类型。为此,您需要为您的应用程序可以打开的每种文档类型添加一个文档类型到您的应用程序的 Info.plist。此外,如果 iOS 不知道任何文档类型,您将需要为该文档类型提供统一类型标识符 (UTI)。

在开始之前,您可能需要阅读有关 Uniform Type Identifier (UTI) 的更多信息。

about 更多的是关于接收数据。如果您想更完整地了解整个过程,您还可以查看如何将数据发送到其他应用程序。您可以查看的两个非常重要的类是UIDocumentInteractionControllerUIActivityViewController

【讨论】:

  • 所以对于应用程序,从 iPhone 的电子邮件中下载的 .xml、txt 或 doc 文件将被添加到应用程序界面并在服务中使用。这是一种实现方法。
  • @kiran,我有点困惑。你是说上传吗?
  • @kiran,是的,不幸的是,不同的操作系统有不同的行为。 iOS 与安卓不同。它没有适用于所有应用的共享 Document 文件夹。 xml、docs等内容保存在各个app的文档下。
  • 所以我无法上传被其他应用程序(如 adobe reader、邮件等)使用的 xml 文档文件。
猜你喜欢
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 2020-10-08
  • 1970-01-01
  • 2019-06-15
  • 2012-04-23
  • 2023-03-20
相关资源
最近更新 更多