Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从iOS设备上载文件/照片的最佳方式是什么?_Ios_Security_Swift3_Icloud_Nsfilemanager - Fatal编程技术网

从iOS设备上载文件/照片的最佳方式是什么?

从iOS设备上载文件/照片的最佳方式是什么?,ios,security,swift3,icloud,nsfilemanager,Ios,Security,Swift3,Icloud,Nsfilemanager,下面是一个场景:我的应用程序具有一个帐户系统,其中用户可以登录/注销应用程序,从而使其他用户也可以使用相同的iOS设备登录。成功登录后,它从网站下载文件(如pdf、ppt等),我将这些文件放在应用程序的本地目录中(这些文件分别放在每个用户的用户id命名的文件夹中)。因此,如果用户将使用应用程序上载文件,我应该从哪个目录获取文件 从以下位置获取文件/照片: A) 本地文件应用程序目录(缺点:能够查看其他用户的目录) B) iCloud文档(缺点:我不确定iOS用户通常是这样存储的,还是没有放在i

下面是一个场景:我的应用程序具有一个帐户系统,其中用户可以登录/注销应用程序,从而使其他用户也可以使用相同的iOS设备登录。成功登录后,它从网站下载文件(如pdf、ppt等),我将这些文件放在应用程序的本地目录中(这些文件分别放在每个用户的
用户id
命名的文件夹中)。因此,如果用户将使用应用程序上载文件,我应该从哪个目录获取文件

从以下位置获取文件/照片:

  • A) 本地文件应用程序目录(缺点:能够查看其他用户的目录)
  • B) iCloud文档(缺点:我不确定iOS用户通常是这样存储的,还是没有放在iCloud中的文件?)
  • C) 本地文件应用程序目录,并限制与
    用户\u id
    不匹配的文件夹(是否可能)
  • D) 其他

这就是在iOS中上传的正常工作方式

将要上载的文件复制到应用程序的临时目录,然后使用后台会话配置创建上载任务,并将文件路径(临时文件夹路径)传递到上载任务

我为什么要传递文件路径??

如果将后台会话与上载任务一起使用,则后台会话的当前设计限制您提供任务的文件路径,这意味着您既不能将二进制文件流式传输也不能将二进制文件传递给上载任务(通过二进制文件,我指的是您不能将文件数据保存在任何变量中)

我为什么要使用后台会话??

如果您希望应用程序继续上载,即使用户将应用程序置于后台,甚至杀死应用程序(一旦上载任务启动),则后台会话是您唯一的机会:)

为什么我应该只将文件复制到临时目录??

退出应用程序后,临时目录中复制的文件将暂时保留在目录中。该应用程序文件将被删除,临时目录中的文件不会由iCloud备份:),其中,文档目录或其他目录中的as文件将由iCloud备份

摘要:

  • 一旦用户选择该文件,将其复制(如果本地可用,如照片库)或下载(如果文件保存在云中)到应用程序的临时目录

  • 使用后台会话创建上载任务,并将文件路径传递给任务:)

  • 喝杯茶/咖啡,开始调试以解决问题:)


  • “如果用户将使用应用程序上传文件”:你是说你将文件上传到你的服务器/网站,并将文件副本保存在本地??我只想上传一个来自iOS设备的文件,这意味着它可能位于照片、iCloud、,或者在其他地方,人们可以将他们的文件保存到我不确定iphone用户如何存储他们下载的文档。iOS没有文件管理器(像Android一样),但我知道iOS中的每个应用都是沙盒。谢谢!但是我应该从哪里得到文件呢?从本地目录或iCloud文档?例如,我从另一个网站(使用应用程序web浏览器)下载了一个pdf,并将其存储到我的iOS设备中,我的应用程序将如何检索此文件?如果用户在照片库中拾取图像,并且u将图像从照片库复制到应用程序沙盒的临时目录中。如果你的应用程序下载了你在上面评论中指定的pdf文件,你知道你在哪里保存了该文件,就像在你的应用程序的doc目录中一样,现在复制该文件并通过代码将其放入你的应用程序的temp文件夹中