Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP或Java实现大型(1GB或以上)文件上传器网站的最佳方法是什么?_Java_Php_Upload_File Upload - Fatal编程技术网

用PHP或Java实现大型(1GB或以上)文件上传器网站的最佳方法是什么?

用PHP或Java实现大型(1GB或以上)文件上传器网站的最佳方法是什么?,java,php,upload,file-upload,Java,Php,Upload,File Upload,用PHP或Java实现大型(1GB或以上)文件上传器网站的最佳方法是什么?在PHP或Java中使用默认的上传方式会导致RAM空间不足,并且会显著降低网站速度 我们一直使用它将非常大的文件上传到专用主机。即使有很多原始(照片)文件,它也能发挥作用 唯一的缺点是它不是多线程的,并锁定您的浏览器,直到它的所有上传 仍然要找到另一个像这样好看的Java上传程序(对我们来说很重要),但是有一些多线程的上传程序看起来很糟糕:-)在客户端打开文件,将其全部内容读取到内存,关闭它,然后开始发送内容是不明智的,正

用PHP或Java实现大型(1GB或以上)文件上传器网站的最佳方法是什么?在PHP或Java中使用默认的上传方式会导致RAM空间不足,并且会显著降低网站速度

我们一直使用它将非常大的文件上传到专用主机。即使有很多原始(照片)文件,它也能发挥作用

唯一的缺点是它不是多线程的,并锁定您的浏览器,直到它的所有上传


仍然要找到另一个像这样好看的Java上传程序(对我们来说很重要),但是有一些多线程的上传程序看起来很糟糕:-)

在客户端打开文件,将其全部内容读取到内存,关闭它,然后开始发送内容是不明智的,正是因为内容可能超过可用内存


另一种方法是打开文件,读取其中的一个块(当然记住最后一个块的结束位置),关闭文件,上传到服务器,然后在服务器端通过附加到以前的块来重新组装文件。这不是一个简单的过程,应该考虑资源管理、IO故障和同步等因素,尤其是在与多线程并行工作时。

我建议使用JumpLoader[google it],因为它提供了许多有用的功能。我已经将它集成到我的开源CMS项目中,效果很好(当然,这里和那里都需要一些调整)。具有Javascript接口,您可以使用原始Jscript或JQuery访问该接口[我使用后者,为其编写了一个小插件]。唯一的缺点是applet额头上的JumpLoader:P,你可以花100美元去掉它


总的来说,诸如多次上传、预上传中的图像和文档编辑、分区上传、通过md5指纹检查传输完整性之类的功能非常吸引人。

问题,如果在上传过程中重置客户端网络连接怎么办?