我有一个 Servlet,它制作并返回一个 zip 文件 像这样
response.setHeader("Pragma","Public");
response.setHeader("Cache-Control","must-revalidate,post-check=0,pre-check=0");
response.setContentType("application/octet-stream");
response.setHeader("Expires", "0");
response.setHeader("Content-Transfer-Encoding", "binary");
if(file.getName().contains("–")){
response.setHeader("Content-Disposition", "inline; filename=\"file.zip\"");
}
OutputStream os = response.getOutputStream();
ZipOutputStream zos = new ZipOutputStream(os);
for (File f : files) {
//add files, it's working...
}
bis.close();
fis.close();
zos.closeEntry();
}
zos.flush();
zos.close();
os.flush();
os.close();
目前要下载我使用的是 iframe,所以我设置了 src 属性来开始下载。调用此函数时加载下载帧
function loadIDownloadFrame(url) {
document.getElementById("idownloadFrame").src=url;
}
但是现在,我需要在不离开当前页面的情况下返回 zip 文件后显示一条消息。我需要知道 servlet 是否返回了 zip 文件。
我尝试使用“window.frames['idownloadFrame'].document.readyState”获取 iframe 状态,但状态始终为“完成”。
任何人有任何解决方案?