下载生成的HTML文件
问题描述:
我有一个生成的HTML文件,我需要能够点击下载按钮(所以不能在新窗口中打开,只显示此特定html文件的保存文件对话框)。下载生成的HTML文件
的代码,我到目前为止有:
AVaadinApplication application = VaadinContext.getCurrentInstance().getVariable(VaadinContext.APPLICATION, AVaadinApplication.class);
StreamResource inputHTML = new StreamResource(
new StreamResource.StreamSource() {
private static final long serialVersionUID = 1L;
@Override
public InputStream getStream() {
return new ByteArrayInputStream(getHelpContentString(getLocale()).getBytes());
}
}, "help_" + getLocale() + ".html", application);
inputHTML.setCacheTime(0);
任何帮助是极大的赞赏,因为我已经打破我的头这一点。
答
将HTML包装在Zip文件中。我知道没有浏览器会尝试显示一个Zip文件,而是将其作为文件推送到“打开(在Zip存档程序中)或保存”。
+0
它是否像这样工作,魅力。非常感谢 – Fverswijver 2011-04-13 08:33:56
+0
不用担心。很高兴你把事情解决了。 :) – 2011-04-13 08:39:49
答
您应该将结果的HTTP Content-Disposition
标题设置为附件。你怎么做取决于你如何与Web服务器交互。以前的代码是作为一个servlet运行的,在play framwork中,作为一个cgi等?
“我到目前为止的代码:” - 什么是实际问题?它不起作用吗?你不确定下一步该去哪里?你有错误吗?请更具体一些。 – 2011-04-06 15:50:36
该代码的工作原理与它生成所需的HTML文件一样,但只在新选项卡中打开(用'getMainWindow()调用)open(inputHTML,“_blank”);') – Fverswijver 2011-04-07 07:22:43