2014-05-23 17 views
2

我使用MooTools作为JS框架。如何在从服务器请求文件后启动“另存为/打开”?

当用户点击“显示报告” - 键在我的网站,我开始Request.HTML检索请求报告的路径。

如果报告尚未存在,则在服务器上创建它(等待弹出窗口显示给用户)。报告文件被保存到服务器上的特殊路径,并且该路径返回给浏览器。

当我得到报告文件的路径 - 报告可以达到大约5到8MB - 我想在显示用户“Download-ProgressBar”的同时开始一个新的Request.HTML来检索大报告文件。

Everthing,直到这一点工作正常。 ProgressBar完成后,我收到了我的大文件。

但我的问题是现在,我怎么能从JavaScript开始像“打开文件”或“另存为文件”。

我下载并在控制台中显示的文件再用,但现在我希望用户保存在某个地方该文件还是直接打开它...

enter image description here

类方面。

+0

马里奥请记住标记答案如果他们解决了您的问题接受。 – Rikard

回答

1

为什么不只显示指向该文件的链接,以便它在新页面中打开? 这种方式可以在新窗口中打开并从浏览器的菜单中保存(或使用右键单击>保存到菜单)。

既然你已经有了你的文件系列化大多数浏览器现在supports the data uri scheme因此,如果这一优良,支持的浏览器的有限的子集,你可以做

window.open(fileToSave, '_blank'); 

特别是老版本的IE不支持所有类型的文件使用data-uri,所以它不适用于html。

有较新的浏览器的一些文件API太多,而且有涉及闪存一些其他的解决方案,但在历史上这样做的正确方法是导航到它返回一个头

Content-Disposition: attachment; filename=yourfilename.html 

的服务器网页,将在任何浏览器中工作(我在IE6中使用了很多,没有特别的问题)。

相关问题