Excel Wicket DownloadLink上的setCacheDuration
我目前正在使用Wicket中的downloadLink,允许用户下载创建的excel文件,然后删除。通过SSL执行此操作时,IE会给我一个错误: “无法下载 Internet Explorer无法打开此网站。请求的网站不可用或找不到。请稍后再试。“ 在这里: 在阅读了上面的microsoft支持链接后,似乎是因为 因为它是通过SSL的,而我Excel Wicket DownloadLink上的setCacheDuration,excel,file,ssl,download,wicket,Excel,File,Ssl,Download,Wicket,我目前正在使用Wicket中的downloadLink,允许用户下载创建的excel文件,然后删除。通过SSL执行此操作时,IE会给我一个错误: “无法下载 Internet Explorer无法打开此网站。请求的网站不可用或找不到。请稍后再试。“ 在这里: 在阅读了上面的microsoft支持链接后,似乎是因为 因为它是通过SSL的,而我 response.setHeader("Cache-Control", "no-cache, max-age=0, must-revalidate,
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输出=新的FileOutputStream(excelfile);
工作簿。编写(输出);
output.close()
我设置的持续时间是否从调用File excelfile=new File(“ssaUserIDAccess.xls”)开始
在这种情况下,我应该使用的最佳持续时间和设置是什么?因为文件可能会变得很大,如果文件足够大,则可能需要一些时间来创建
谢谢 我不记得原因了,但是我们在SSL/IE上遇到了同样的问题,我们只是将缓存持续时间设置为1秒就足够了。只是它不可能是零。另一个我们从未找到的解决方案
auditDownloadlink.setCacheDuration(Duration.ONE_SECOND)
是的,我也这么做了,这似乎在所有的搜索案例中都奏效了。感谢您的验证!