2016-08-11 106 views
0

首先,感谢帮助我! 我怎样才能让一个文件第一次下载到浏览器,然后只是弹出文件...例如http://mega.nz如何显示进度和下载速度

我做了服务器端脚本php,它发送到浏览器的文件块与内容处置标题和有用!

但我想先下载到浏览器,并取得进展&速度。

英语不是我的主要语言...

+0

是#1这里特定的编程问题,这个问题是相当开放式的,不提供任何具体的例子,所以你可能会被downvoted。 Por赞成proporcione un ejemploespecífico。 –

+0

我改变了标题,我认为它很好地总结了它... –

+0

我只是想要一些想法...在我的例子cuz在它的工作,但我没有线索。 我要显示有关文件的进度和速度(我已经设置在PHP限制) –

回答

2

这不会是一个完整的答案,但我会尝试让你开始正确的道路。

首先,你需要使用的文件系统API,将文件下载到浏览器的缓存。对于铬,你可以在这里找到更多的信息:https://developer.chrome.com/apps/fileSystem

的API,可以通过HTML5扩展的,所以您可以在其他浏览器做到这一点。请参阅本文的详细信息:http://www.html5rocks.com/en/tutorials/offline/quota-research/#toc-desktop

现在,它是如何工作的幕后,就自己实现它,看看FileSaver.js
从他们的Github上:

FileSaver.js工具浏览器中的saveAs()FileSaver接口本身不支持它。有一个FileSaver.js演示,演示如何保存各种媒体类型。

FileSaver.js是在客户端保存文件的解决方案,非常适合需要生成文件的Web应用程序,或者用于保存不应发送到外部服务器的敏感信息。

这应该允许您针对任何现代浏览器进行大文件下载,以及暂停和恢复下载。

您可能还需要寻找到NodeJS因为有可能会提出已经你可以在你的服务器应用程序利用一些包。

+0

谢谢你的时间指向我正确的方向! 为什么[暂停]在我的标题上? –

+0

如何解释更好,以便让其他用户找到有用的内容,因为这个答案提供了? –

+0

@GabrieldosAnjos你需要尝试一些代码,当你遇到一个特定的问题,然后张贴。截至目前,你的问题太宽泛了,任何人都不能给你堆栈溢出的具体帮助。如果您发布了新问题,请标记我或回复此评论,我会帮您解决。 –

1

方式Mega.nz的工作原理是通过使用文件系统API。它将文件以“缓存”的形式写入系统中的示例位置,例如: AppData \ Local \ Google \ Chrome \ User Data \ Default \ File System \

这有什么好处?在视觉上没有,除了它只是让下载的东西不同的感觉。

你是如何做到这一点的?这不是一件容易的事,输入这段代码就完成了!他们为此设置了云。我会先研究FileSystem。

+0

非常感谢! –

+1

您错误的好处,它允许暂停和恢复下载,以及能够利用异步流。这可能不是他的情况,但对于其他网站,可以在下载中更改流源以适应服务器负载。它还可以防止用户直接链接到下载URL(否则您可以为下载URL创建单次使用令牌),最后,您还可以限制流以改变下载速度(例如免费或付费用户网站)。 –

+0

@XanderLuciano不要为不存在的问题做出回答。暂停和恢复下载不是必需的,因此,它不是这个问题的一部分。 –