File upload 什么';将大量(20-30Gig)文件从客户端上传到服务器的最佳方式是什么?

File upload 什么';将大量(20-30Gig)文件从客户端上传到服务器的最佳方式是什么?,file-upload,File Upload,这是对问题的第三次编辑,我现在删除了原文,因为它显然不再相关 我需要写一个客户端,允许用户上传大量文件到服务器。AJAX和Flash似乎已经过时了,因为它们坚持在提交文件之前将文件读入内存。我一直在寻找预构建的小程序,但没有什么看起来是完全有希望的 寻找如何做到这一点的建议。问题是客户端和服务器端。PHP可能不是收集此类文件的最佳服务器端解决方案。。。因此,服务器是否需要64位才能处理超过4gigs的文件 在客户机上,我更喜欢基于浏览器的应用程序,但我现在想,也许把它作为一个平台应用程序来编写会

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

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

寻找如何做到这一点的建议。问题是客户端和服务器端。PHP可能不是收集此类文件的最佳服务器端解决方案。。。因此,服务器是否需要64位才能处理超过4gigs的文件

在客户机上,我更喜欢基于浏览器的应用程序,但我现在想,也许把它作为一个平台应用程序来编写会更好(尽管这会更麻烦)


真的,我愿意接受任何事情,只要它相对可靠

已经创建了大量Flash上传程序,它们可能已经支持您的需要或帮助您开始使用,这对谷歌来说非常简单。也就是说,对于一个多GB的文件上传器,你可能需要考虑设计一个上传大容量文件的上传器,在网络断开的情况下允许恢复……如果我上传1.9GB,然后丢失了与1GB的连接来上传,那就太糟糕了!此外,在PHP方面,您只会收到更小的块,这些块可能更易于管理内存。一旦接收到所有块,就可以在PHP端将所有块组合在一起

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

您可能想考虑Flash本地存储,以便创建一个健壮的“暂停/继续”用户进程。例如,我上传了2GB文件的1/2GB,然后我的电源断了。如果我能回到上传页面,在我离开的地方有一份Flash简历,那就太好了。闪存本地存储可能是支持这一点的方法。例如,您可以使用本地存储来跟踪用户正在上载的本地文件路径,以及上次成功上载的区块

如果要在安全环境中部署,您可能需要在Flash客户端中支持身份验证…具体取决于您计划在何处部署此功能

我不知道这对Flash创意是否有帮助,我只是想插话


我不太清楚纯AJAX方法是否适用于多GB上传场景

只是一句小小的评论,我们放弃了flash,因为我们当时(1年前)测试的上传选项不支持ISA代理,因为我们主要与Microsoft网络合作,我们迁移到Silverlight,因为这个问题不存在,但互操作性较小。这是通过flash中的RTMP协议实现的吗?ISA服务器应支持任何协议/端口。如果Flash没有通过标准HTTP进行通信,则可能已经对防火墙配置进行了更改,以允许使用Flash协议。Silverlight解决方案是否使用与Flash解决方案相同的协议/端口?谢谢。我对你的答案投了赞成票,但我会留待其他选择。我绝对不想为了这个把文件分成几个部分。我宁愿使用Java并将文件作为一件事上传。这个小程序似乎就是这样做的。我会报告我的发现。看起来是一个可行的解决方案。它也支持恢复。如果简历是强制的,它将要求你在服务器端支持分块上传…我可能会这样做,因为我讨厌一个2GB的文件被丢弃。但我尊重您对文件上传受众及其带宽吞吐量/稳定性的了解。是的,嗯。。。看起来他们要么是一家假公司,要么就倒闭了。他们没有回答我的问题,他们的订单也不起作用(也没有他们的电话号码)。