php - 如何从 Android 中的手机间隙文件上传中读取分块数据

标签 php android apache file-upload cordova

我们正在尝试将视频文件从 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/

相关文章:

Android Studio 错误 'reg' 未被识别为内部或外部命令

php - 如何获取json android中返回的多行并将其传递给sqlite

android - 下载文件到自定义目录

php - EmptyIterator 的目的是什么?

android - 应用程序在后台时 Gimbal PlaceEventListener Api 的可用性?

php - .htaccess - 子域的 DocumentRoot

java - 关闭 HttpClient 版本 4.0.3

php - Wordpress Htaccess - 停止子目录自动重定向到根索引

php - 在 Laravel 中查询失败,但在 MySQL 中可以正常查询

javascript - 显示来自两个连续相关数据库表的 jqGrid 数据