我想写一些HTML/JS代码,这将有助于将大文件(多GB)上传到远程服务器。之前我们一直在使用一个flash上传器,它可以在一个网络请求中上传给定的文件。闪存会打开一个网络连接,将一块文件读入内存,然后将该块写入网络连接,然后抓取下一块,然后写入网络等等,直到整个文件上传。这是通过这种方式完成的,因为大多数Web浏览器会尝试在尝试上传之前将整个文件读入内存。在处理多GB文件时,这会使客户端系统崩溃,因为它使用所有客户端内存。现在我们遇到了使用闪存的问题,所以需要继续,我们希望替换它而不需要修改现有的服务器端代码。如何在单个连接中以Javascript上传大文件?
几个谷歌搜索jquery上传显示,有很多库支持“分块”,但他们“块”在多个请求。我们不想在多个网络请求中分块文件,我们只想让JS在将文件写入单个网络连接时以块读取文件。
任何人都知道一个可以开箱即可完成此任务的图书馆吗?
如果需要,我们不反对修改现有的库。任何人都有一段类似于我可能能够改装成图书馆的波纹伪代码片段?
connection = fopen(...);
fputs("123", connection);
... some unrelated code ...
fputs("456", connection);
fclose(connection);
(原谅我用伪JS代码使用的C函数...我知道这是不是你的JS做到这一点,我只是展示在低层次的我要如何写流到关闭之前的网络连接)
注意:我们是不是要“现代化”或彻底改善这个项目 - 我们是不是要重新做这个项目。我们有一些已经坐在这里多年的旧代码,我们希望尽可能少地改变服务器端代码。我有更重要的项目要实现现代化并提高效率 - 我们只需要工作。请不要劝我impliment“正确”的文件分块在服务器端 - 这是我的建议,如果我的建议采取那么任务将被分配到不同的开发商。现在不在我的控制之下,请仅使用客户端修复程序!
谢谢,对不起任何头痛!
如果你想要一个单一的连接,尝试使用网络套接字和传输块 – juvian 2014-10-06 19:25:08