在HTML表单提交后提供文件“另存为”对话框

时间:2010-09-21 19:36:24

标签: javascript html save-as

我有一个JSP页面,需要在表单中接受一些信息,将所述表单提交到同一页面,并在表单提交后使用额外的“谢谢______”div(使用参数检查)。

但是,我还需要在服务器上提供一个文件供下载,但是由于整个jsp页面仍然需要显示,我不能搞乱文件的内容配置来提供文件。如何在不将表单提交到其他页面的情况下提供此文件?我可以使用什么JavaScript技巧来打开一个新的窗口来执行此操作? Javascript会没问题,但弹出窗口阻止程序不会胜过任何事情。

我无法使用href发送文件 - 必须自动完成。

此外,如果在新窗口中打开文件(即pdf),那也没关系。

1 个答案:

答案 0 :(得分:3)

我以前做过这个。正常加载JSP页面,但包含一行Javascript,重定向到另一个负责提供文件的页面......

location.href = 'serveFile.jsp';

只要serveFile.jsp正确设置content-disposition标题,它就会显示保存对话框,实际上不会更改页面。

  

如何在不进入其他页面的情况下提供此文件?

你在技术上不能,但你可以使用这种方法保留在上一页(界面明智),这样就可以实现我相信你正在寻找的无缝效果。

注意:在我的方法实现中,我发现保存文件后,导航到另一个页面,然后点击后退按钮,您将再次获得保存对话框。没办法解决这个问题。