Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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
Java 大文件下载_Java_Flash_Silverlight_Browser_Large Files - Fatal编程技术网

Java 大文件下载

Java 大文件下载,java,flash,silverlight,browser,large-files,Java,Flash,Silverlight,Browser,Large Files,Internet Explorer的文件下载限制为4GB(在IE6上为2GB)。Firefox没有这个问题(尚未测试safari) (更多信息请点击此处:) 我在一个网站上工作,该网站允许用户下载非常大的文件(高达或超过100GB) 不使用FTP的最佳方式是什么。最终用户必须能够使用HTTP从浏览器下载文件。我不认为Flash或Silverlight可以将文件保存到客户端,因为据我所知,他们不会剪切文件 我猜我们需要一个ActiveX或Java小程序来实现这一点。类似于MSDN使用的下载管理器

Internet Explorer的文件下载限制为4GB(在IE6上为2GB)。Firefox没有这个问题(尚未测试safari) (更多信息请点击此处:)

我在一个网站上工作,该网站允许用户下载非常大的文件(高达或超过100GB)


不使用FTP的最佳方式是什么。最终用户必须能够使用HTTP从浏览器下载文件。我不认为Flash或Silverlight可以将文件保存到客户端,因为据我所知,他们不会剪切文件

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

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

更新:这里有一些额外的信息来帮助澄清我正在尝试做什么。超过4GB限制的大多数文件都是大型高清视频文件(对于视频编辑公司而言)。这些将由用户通过互联网下载,而不是本地网络上的用户。我们希望这些文件可以通过HTTP访问(有些用户将使用不允许FTP、Bittorrent等的防火墙)。这将是一个最终用户可以下载的文件库,所以我们不是说一次性的大下载。用户将半定期下载不同的大型文件

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

最好的解决方案是一个java小程序或ActiveX组件,因为这个问题只存在于IE中,它的工作原理类似于@spolson链接到的文章。然而,到目前为止,我还没有找到一个解决方案来完成类似的工作(多部分下载、恢复等)

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

已经有一些基于web的版本(,),并且是使用java构建的,所以这绝对是可能的


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

请不要使用ActiveX。。。我非常讨厌那些只能在IE中查看的网站

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

@travis

不幸的是,它必须在用户浏览器中通过HTTP。
我将更新这个问题,以便更清楚地了解这一点。

您能将文件拆分成若干部分,然后在下载后重新连接它们吗?

@levand 这个问题只存在于IE中(它在Firefox中工作),所以虽然ActiveX只能在IE上工作,但IE是我们唯一需要解决的问题

@特拉维斯-有趣的想法。不确定它是否能满足我的需要,但我会记住的。我希望能找到一些东西来整合现有的网站,而不是必须走出去给第三方。它还需要我设置一个bittorrent跟踪器,这对于这个应用程序来说并不像听起来那么简单,因为不同的用户对不同的文件有不同的访问权限。

@jngguy 我正在寻找一个java小程序或ActiveX组件,将为我做到这一点。这些是非技术用户,因此我们只想让他们单击“下载”,完整的文件将在指定的位置结束

@levand:

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

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

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

@TonyB:

不使用FTP的最佳方式是什么

对不起,我得问一下为什么要这样做。你的问题对我来说是这样的:“没有肉或热源的牛排最好的烹饪方法是什么?”FTP就是为这种事情设计的。

@ceejayoz

我完全同意,但这是我们客户要求的一部分。将有FTP访问,但每个用户都可以选择通过HTTP或FTP下载。有些用户将处于不允许FTP的公司防火墙后面


我以前见过其他网站(MSDN、Adobe)这样做,所以我希望已经有了一些东西,而不是必须在内部制作一个(并学习java和/或ActiveX)

我说,单击一次安装下载管理器,类似于MSDN


但是,如果没有更优化的协议,成为CDN绝非易事。我无法想象一种商业模式值得拥有如此大的文件下载量作为核心竞争力,除非你正在做类似msdn的事情。如果您创建了一个厚客户端,您至少有机会与用户进行更多的面对面交流,用于广告或其他收入模式,因为您可能需要支付数十万美元来托管这样的服务。

小程序的问题