大文件下载

2022-09-04 08:39:55

Internet Explorer 的文件下载限制为 4GB(IE6 上为 2 GB)。Firefox 没有这个问题(还没有测试 Safari) (更多信息在这里: http://support.microsoft.com/kb/298618)

我正在开发一个允许用户下载非常大的文件(最多和超过100GB)的网站

不使用FTP的情况下执行此操作的最佳方法是什么。最终用户必须能够使用 HTTP 从该浏览器下载文件。我不认为Flash或Silverlight可以将文件保存到客户端,所以据我所知,他们不会削减它。

我猜我们需要一个ActiveX或Java小程序来实现这一目标。类似于 MSDN 使用的下载管理器。

有谁知道一个商业(或免费)组件可以做到这一点吗?我们不希望用户必须安装“浏览器范围”下载管理器(如GetRight),我们希望它只能在我们的网站上下载。

更新:以下是一些其他信息,可帮助阐明我正在尝试执行的操作。超过4GB限制的大多数文件都是大型高清视频文件(适用于视频编辑公司)。这些将由互联网上的用户下载,这不会是本地网络上的人。我们希望文件可以通过HTTP获得(一些用户将位于防火墙后面,而防火墙将不允许FTP,Bittorrent等)。这将是最终用户可以下载的文件库,因此我们不是在谈论一次性大下载。将半定期下载不同的大文件。

到目前为止,@Edmund-Tay建议的Vault是最接近的解决方案。唯一的问题是它不适用于大于4GB的文件(在开始下载之前它会立即失败,它们可能在某个地方使用了32位整数,该整数被文件的内容长度超过/溢出)。

最好的解决方案是java小程序或ActiveX组件,因为问题只存在于IE中,就像@spoulson链接到的文章一样工作。但是,到目前为止,我还没有找到一个可以做类似事情的解决方案(多部分下载,简历等)。

看起来我们可能不得不写自己的。另一种选择是编写与扩展名或 mime 类型关联的 .Net 应用程序(可能是 ClickOnce)。然后,用户实际上将从在exe / ClickOnce应用程序中打开的Web服务器下载一个小文件,该应用程序告诉应用程序要下载什么文件。这就是 MSDN 下载程序的工作方式。然后,最终用户只需下载/安装一次 EXE。这比每次他们想要下载大文件时下载exe要好。


答案 1

@levand:

在这些情况下,作为用户,我的实际偏好是下载一个轻量级.exe文件,为您下载该文件。

这对许多网站来说都是一个交易破坏者。用户要么非常不愿意或应该非常不愿意从网站下载.exe文件并随意运行它们。即使他们并不总是那么谨慎,作为负责任的开发人员,我们也不是应该鼓励的。

如果您正在按照公司内部网的路线进行工作,那么.exe可能是一个不错的解决方案,但是对于公共网络呢?不可能。

@TonyB:

在不使用FTP的情况下执行此操作的最佳方法是什么。

我很抱歉,但我不得不问为什么要求。你的问题读起来像是“在没有任何肉或热源的情况下烹饪牛排的最佳方法是什么?FTP就是为这种事情而设计的。


答案 2

bittorrent

已经有一些基于Web的版本(bitletw3btorrent),Azureus是使用java构建的,所以这绝对是可能的。

编辑:@TonyB仅限于端口80?


推荐