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ファイルを返した後にメッセージを表示する必要があります。サーブレットがzipファイルを返したかどうかを知る必要があります。
「window.frames['idownloadFrame']。document.readyState」でiframeステータスを取得しようとしましたが、常にステータスは「complete」です。
誰かが解決策を持っていますか?