我们正在尝试将视频文件从 phonegap 移动应用程序上传到网络服务器。在 iPhone 中一切正常,但在 Android 上,数据以 block 的形式发送,我们的服务器应用程序 (php) 无法处理它。
//phonegap
var options = FileUploadOptions();
options.chunkedMode = true; //default
我们尝试将 chunkedMode 设置为 false。这适用于较小的文件,任何超过 1mb 的视频都会导致 Android 手机崩溃。 (这就是他们默认打开 chunkMode 的原因)。
我们的问题是如何使用php读取上传的chunk数据? Apache 中是否有需要打开的设置才能读取此数据?
最佳答案
在服务器端读取分块数据与非分块数据没有区别。这只是手机发送数据的方式(以 8192 字节的 block ,或作为一个流)。
网络上有很多关于此功能的讨论,我个人发现整个文件上传解决方案有点不稳定,尤其是对于较大的文件(例如,视频文件)。
有些人报告它发生在大于 4.8mb 的文件上,在我的 android 手机上它发生在 8mb 左右。
当我的应用程序上传文件但没有附加文件时(这是在连接错误 3 场景中发生的情况)我记录它,这样我就可以看到有问题的手机。它也发生在 iPhone 上(某些型号)。
如果您在它发生时查看 android 日志,您很可能也会看到内存不足异常。
这对您有何帮助?它没有,真的 - 但希望它有助于解释问题所在。不幸的是,我们对此无能为力 - 除了贡献 phonegap 源代码和重写文件传输方法!
出于兴趣,在您遇到问题的手机上,您可以使用 Facebook 等方式上传大量文件而不会出现问题吗?然而,该应用正在上传文件肯定是 phonegap 应该做的方式..
关于php - 如何从 Android 中的手机间隙文件上传中读取分块数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9543338/