こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイルのダウンロード時に、キャンセルボタンが押されたときのイベントがとりたい

こんにちは。
初めて質問させていただきます。

サーブレットでPDFファイルのダウンロードを行う処理を実装しています。

クライアントがダウンロードのダイアログでキャンセルボタンを押したときのイベントを
サーブレット側で検知し、キャンセルされた場合にはDBへのインサートをしたいのですが、
いろいろ試してみても以下のような場合に入出力例外のcatchができません。

(1)PDFファイルのサイズが300KB以下で、
 「ファイルのダウンロード」ダイアログの「保存」ボタンを押した後の「名前を付けて保存」ダイアログ
 で「キャンセル」ボタンを押した場合。

(2)PDFファイルのサイズが100KB以下で、
 「ファイルのダウンロード」ダイアログの「キャンセル」ボタンを押した場合。

という事なのですが、ダイアログのイベントを取るための解決策や手がかりなどがありましたら
ご教授いただけませんでしょうか?
どうぞよろしくお願いします。

ソースは追って送信させていただきますm(_ _)m

投稿日時 - 2005-10-31 17:25:47

QNo.1747918

すぐに回答ほしいです

質問者が選んだベストアンサー

ダウンロードのダイアログが表示されるときはすでに
サーブレットの処理は終わってしまっていますし、
キャンセルを押したことをサーブレット側で知るのは
不可能なはずです。

投稿日時 - 2005-10-31 22:16:39

補足

ご回答ありがとうございます。

私の説明不足だったのですが、
実は、
byte[] byteBuf = new byte[1];
bis.read(byteBuf, 0, byteBuf.length);
bos.write(byteBuf, 0, binData);
のように、
入力ストリームからファイルを読み込むときと
出力ストリームに書き込むときのバイト数を
1バイトずつにすると
300KB以上のPDFファイルの場合は
「キャンセル」ボタンを押したときに
IOExceptionでステータスをcatchできるのです。

そこで、ファイルのサイズが小さいときにも
IOExceptionがcatchできるようにしたいのです。

よろしくお願いいたします。

投稿日時 - 2005-11-01 09:32:42

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問