将大量(20 - 30 gig)文件从客户端上传到服务器的最佳方法是什么?

时间:2011-01-20 00:51:29

标签: file-upload

这是问题的第三次编辑,我现在删除了原始文本,因为它显然不再相关。

我需要编写一个允许用户将大量文件上传到服务器的客户端。 AJAX和Flash似乎没有出现,因为他们坚持在提交文件之前将文件读入内存。我一直在寻找预先建立的小程序,但没有什么看起来完全有希望。

寻求有关如何执行此操作的建议。问题是客户端和服务器端。 PHP可能不是收集此类文件的最佳服务器端解决方案......对于这个问题,服务器是否需要64位才能解决超过4gig的文件?

在客户端上,我更喜欢它是基于浏览器的,但我现在认为将它编写为平台应用程序可能更好(尽管这更麻烦)。

真的,只要它相对可靠,我对任何事情都持开放态度。

1 个答案:

答案 0 :(得分:1)

已经创建了大量的Flash上​​传器,可能已经支持您的需求或帮助您入门,这对Google来说非常简单。也就是说,对于一个多GB的文件上传器,您可能需要考虑设计一个上传大量文件的上传器,并且允许在网络断开的情况下进行恢复...如果我上传了1.9GB并且可能会很糟糕然后丢失我的连接与.1GB剩余上传!此外,在PHP方面,您只会收到更小的块,这些块可能更容易管理内存。然后,一旦收到所有块,您就可以在PHP端将所有块组合在一起。

Flash客户端和服务器端需要与这种设计进行互操作。即服务器需要了解您的自定义分块协议。您可能需要考虑客户端带宽节省方法,例如压缩Flash客户端随后上载的块,然后解压缩服务器上的这些块。

您可能需要考虑Flash本地存储,以便建立强大的“暂停/继续”用户进程。例如,我上传1/2 GB的2GB文件,然后我的电源就会耗尽。回到上传页面对我来说很棒,并且在我离开的地方有Flash简历。 Flash本地存储可能是支持它的方式http://www.macromedia.com/support/documentation/en/flashplayer/help/help02.html。例如,您可以使用本地存储来跟踪用户上载的本地文件路径以及上次成功上载的块。

如果要在安全的环境中部署,则可能需要在Flash客户端中支持身份验证...具体取决于您计划部署此身份的位置。

不知道这对Flash的想法是否有帮助,只是想我会插话。

我不太了解纯AJAX方法适用于多GB上传方案。