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

时间:2017-03-10 06:21:39

标签: ios security swift3 icloud nsfilemanager

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

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

  • A)本地文件应用目录(缺点:查看其他用户目录的能力)
  • B)iCloud文档(缺点:我不确定这是iOS用户通常用来存储的方式,还是iCloud中未放置的文件怎么样?)
  • C)本地文件应用目录并限制与user_id不匹配的文件夹(这可能)
  • D)其他

1 个答案:

答案 0 :(得分:1)

这是上传在iOS中正常运行的方式。

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

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

如果您正在使用后台会话和上传任务,当前后台会话设计限制您提供任务的文件路径,这意味着您既不能传输或传递二进制文件上传任务(通过二进制文件我的意思是你可以不要将文件数据保存在任何变量中

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

如果您希望应用继续上传,即使用户将应用置于后台甚至杀死应用(一旦上传任务开始),那么后台会话是您唯一的机会:)

我为什么要将文件复制到临时目录?

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

摘要:

  1. 用户选择文件后,将其复制(如果本地可用,如照片库)或将其下载(如果文件保存在云端)到应用的临时目录。

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

  3. 获取一杯茶/咖啡并开始调试以解决问题:)