【发布时间】:2013-11-25 16:18:07
【问题描述】:
我目前在 Wicket 中使用下载链接来允许用户下载创建的 excel 文件,然后再将其删除。当通过 SSL 完成此操作时,IE 会给我一个错误: "无法下载。
Internet Explorer 无法打开此站点。请求的站点不可用或找不到。请稍后再试。 "
这里: http://support.microsoft.com/kb/323308
在阅读了上面的微软支持链接之后,似乎是因为 因为它是通过 SSL 的,而且我有
response.setHeader("Cache-Control", "no-cache, max-age=0, must-revalidate, no-store");
我这样设置我的下载链接:
private void setupDownloadLink()
{
IModel excelFileModel = new AbstractReadOnlyModel()
{
public Object getObject()
{
return excelCreator();
}
};
auditDownloadlink = new DownloadLink("auditDownloadlink", excelFileModel);
auditDownloadlink.setOutputMarkupPlaceholderTag(true);
auditDownloadlink.setDeleteAfterDownload(true);
auditDownloadlink.setCacheDuration(Duration.NONE);
auditDownloadlink.setVisible(false);
findUserForm.add(auditDownloadlink);
}
However, it seems to work if I do: auditDownloadlink.setCacheDuration(Duration.Minute);
我想我对发生的事情感到困惑。 setCacheDuration 是否意味着文件创建后多长时间,它在被删除之前可用?或者这是否意味着从声明文件开始,该文件总共可以使用多长时间?
在 excelCreator() 方法中,我调用 File excelfile = new File("Access.xls");然后继续处理所有的excel工作并创建电子表格,然后在我调用的方法结束时: FileOutputStream 输出 = new FileOutputStream(excelfile); workbook.write(输出); 输出.close();
我设置的持续时间会从我调用 File excelfile = new File("ssaUserIDAccess.xls") 的那一刻开始吗?
对于这种情况,我应该使用的最佳持续时间和设置是多少?因为文件可能会变得很大,如果文件足够大,可能需要一些时间来创建。
谢谢!
【问题讨论】:
标签: excel file ssl download wicket