使用在PHP中分块上传1GB文件

我有一个Web应用程序,接受高达4 MB的file upload。 服务器端脚本是PHP,Web服务器是NGINX。 许多用户已经要求大幅增加这个限制,以允许上传video等。

但是,PHP似乎没有这个问题的简单解决scheme。 首先,在客户端,我正在寻找一些能够让我在传输过程中传输文件的东西。 SWFUpload似乎并没有这样做。 我想我可以使用Java FX上传stream( http://blogs.oracle.com/rakeshmenonp/entry/javafx_upload_file ),但我无法在PHP中find任何等效的request.getInputStream。

增加浏览器的client_post限制或php.ini上传或max_execution时间并不是一个真正的大文件(〜1GB)的解决scheme,因为浏览器可能会超时,并想到存储在内存中的所有blob。

有什么办法解决这个问题在服务器端使用PHP? 我将不胜感激您的答复。

plupload是一个JavaScript / PHP库,它使用起来非常简单,并且允许分块。

它使用HTML5。

“但我无法在PHP中find任何相当于request.getInputStream的东西。”

fopen('php://input'); 也许?

我已经创build了一个JavaFX客户端,以最大发布大小的块(我使用2 MB)和PHP接收器脚本将大块文件组装成原始文件。 我在这里发布apache许可下的代码: http : //code.google.com/p/gigaupload/随意使用/修改/分发。

尝试使用bigupload脚本。 这是非常容易集成,可以上传高达2Gb的大块。 块大小是可定制的。

如何使用Java applet上传和PHP处理..

你可以在这里find一个Jupload的例子: http : //sourceforge.net/apps/mediawiki/jupload/index.php? title = PHP_Example

你绝对可以编写一个Web应用程序,接受一个数据块(甚至通过POST),然后将该数据块附加到一个文件。 在我看来,你需要某种客户端应用程序,将需要一个文件,并将其分解成块,然后一次发送到您的Web服务一块。 但是,创build一个sftp目录似乎更容易,并且让客户使用一些预先存在的客户端应用程序来清理文件。

我认为在服务器和客户端之间创build套接字,并发送数据块! 低级编程似乎是解决scheme..可能不是赌注