如何接收从 Files App 发送到我的应用程序的多个文件

Posted

技术标签:

【中文标题】如何接收从 Files App 发送到我的应用程序的多个文件【英文标题】:How to receive multiple files sent to my app from Files App 【发布时间】:2019-04-19 09:54:59 【问题描述】:

当相关文件具有我的应用程序的自定义扩展名并从文件应用程序中点击时,我正在使用下面的代码(在 AppDelegate 中)成功打开/接收单个文件。

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool 

    let sharedItem = FileItem()
    sharedItem.path = url
    sharedItem.name = url.lastPathComponent
    sharedItem.image = self.loadUIImage(fileURL: url)

    let pickFilesViewController = self.window?.rootViewController as? FirstViewController

    pickFilesViewController?.selectedFiles.append(sharedItem)

    pickFilesViewController?.filesTableView.reloadData()

    return true

现在,当我从“文件”应用程序中选择多个相似文件并点击共享按钮时,我的应用程序会出现在应用程序选项下,并带有“复制到我的应用程序”文本。但是,当我点击它时,在我的应用端我只收到第一个(附加)

如何接收所有选定的文件?

这个Question 有一些建议,但它们不起作用,因为看起来所有文件发送到的路径并不总是收件箱文件夹,这取决于我尚未确定的许多因素。

我确定打开电子邮件附件成功将文件发送到收件箱文件夹。但它似乎选择并因此从文件应用程序发送多个发送到一个完全不同的文件夹。

当我尝试打开第一个选定/发送项目的包含文件夹以便我遍历并获取其余部分时......我收到错误消息,指出我的应用程序无权访问该文件夹

再一次,有没有办法一次获取所有文件?谢谢。

【问题讨论】:

尝试将文件放入 let documents = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true) let tempDocumentsDirectory: AnyObject = documents[0] as AnyObject 您找到解决方案了吗? @Asiimwe 【参考方案1】:

目前似乎没有办法在不直接访问存储它的文件夹的情况下执行此操作 - 我觉得这不是真的。

在我的应用中,我们允许共享扩展同时接受多个文件并对其进行相应处理。你可以在等待苹果给我们一些东西的时候尝试一下

【讨论】:

以上是关于如何接收从 Files App 发送到我的应用程序的多个文件的主要内容,如果未能解决你的问题,请参考以下文章

无法获得request.FILES django

无法获取 request.FILES django

在 mvc 上使用 ajax 发送文件和文本参数

如何从 django 视图发送 json 并在 HTML 上接收它

如何从我的 Login.cs 接收到 MasterPageDetail 的值?

从 Javascript 上传文件并通过 Go 接收文件时遇到问题