在 iOS 上通过 <input type=file> 上传存储在云服务上的文件 0 字节

Bra*_*lap 10 cloud file-upload ios

我无法弄清楚为什么某些从 iOS 上传到我们服务器的内容会导致空文件。上传页面是一个简单的表单,使用 POST 和 enctype 作为 multipart/form-data。

该问题似乎仅在用户执行以下操作时才会出现:

  1. 正在使用 iOS
  2. 尝试从云服务(当前为 iCloud 或 Dropbox)上传文件,即使该文件是本地系统上的版本
  3. <input type=file>在选择文件(通过按钮)和开始上传之间留出一段时间,大约 30 秒到 1 分钟。

我不确定与文件的连接是否存在超时问题,如果是,这是否是一个错误或安全功能。如果用户选择文件并在此时间内启动上传,则文件上传成功。

从“真正的”本地系统(例如在任何云文件夹之外)上传的文件上传效果很好,即使有任何延迟也是如此。文件大小和文件类型似乎无关。

我知道 Dropbox 有一个“选择器”系统,它转发链接而不是文件,但在测试中,只要用户在短时间内上传,Dropbox 文件仍然会成功上传。

处理上传的表单相当大,有很多选项,因此用户通常会在选择文件和启动上传之间花费一些时间。

在 Android 或 OSX 桌面平台上不会出现此问题。

我还使用独立的在线上传器进行了测试,即http://checkfiletype.com/并执行了相同的测试,并且发生了相同的事情:

立即按“上传”后的结果,以及 短暂延迟后按“上传”后的结果。

我不知道从这里到哪里去,大多数谷歌搜索只显示有关上传到云平台的结果,而不是来自它们的结果。我错过了什么吗?

Bra*_*lap 1

更新:随着 iOS 15.4 的发布,情况似乎不再如此。更新页面包含“错误修复”:

照片和视频可能无法同步到 iCloud 照片库

虽然它没有直接描述错误,但开发团队似乎实际上已经对选择器/文件系统进行了调整。真是可惜,花了好几年的时间。