- PR -

ファイルエクスポート時にクライアントに出力されるダイアログの、キャンセルボタンのイベントを取りたい

1
投稿者投稿内容
seki
常連さん
会議室デビュー日: 2005/03/23
投稿数: 29
投稿日時: 2005-05-18 21:28
sekiと申します。

responseヘッダーにapplication/octet-stream-dummyを指定して、
HTTPの機能でクライアントにファイルをエクスポートさせる処理を実装しております。

クライアントが実際にファイルを自分のPCにダウンロードしてダイアログ
の閉じるボタンを押したイベントをServlet(サーバ側で)取ってから、
サーバ側で作成したファイルを削除したいと考えております。

クライアントが途中で、ダイアログのキャンセルボタンを押下した場合などは
ファイルを削除しないようにしたいので、クライアント側が行ったダイアログの
イベントをServlet(サーバ側で)取れれば良いのですが、果たして可能なのでしょうか?

デバッグしてみると、Servletはクライアントにエクスポートした時点で
(response.getWriter()してファイル内容を書き出してflushした時点)
処理を終了しています。

やりたい事は、Servletでクライアントにファイルをエクスポートさせた後に、

クライアントがダイアログで保存    → エクスポートファイルを削除する
クライアントがダイアログでキャンセル → エクスポートファイルを削除しない

という事なのですが、ダイアログのイベントを取れないのであれば何か他の方法で
実装されている方とかはおられないでしょうか?

_________________
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-05-18 21:40
HTTPで実現する限り、希望されている処理は不可能です。保存ダイアログが表示されている
時点でクライアントとサーバの通信は終了していますので、クライアント側がどのような
処理をしたかをサーバ側が感知することはできません。あきらめてレスポンスが終了した
時点でファイルを消すか、バッチプログラムで一定時間経過したファイルを消すとかの
対処が必要になります。
seki
常連さん
会議室デビュー日: 2005/03/23
投稿数: 29
投稿日時: 2005-05-18 22:38
ukさん:

大変参考になりました。
誠にありがとうございました。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)