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

解決済みの質問

お世話になります。

お世話になります。
HTTP機能で、サーブレットでPDFファイルのダウンロードを行う処理の際に、
「ファイルのダウンロード」ダイアログボックス上の
[キャンセル]ボタンをクリックした際の、
「キャンセルのイベント」を取得したいです。

(開発環境:WindowsXP SP3、Eclipse3.5、Java、サーブレット、JSP、
       MySQL5、Apache2.2、Tomcat6等)
(動作環境;サーバは、Linux(CentOS5.5)、
      クライアントはWindowsXP SP2以上、
             WebブラウザはInternet Explorer7以上)

それを取得したい目的は、
「ファイルのダウンロード」された回数を、
毎回インクリメントして、カウント数として記録に残したい為です。
(「キャンセルのイベント」が取得出来ないと、
   正確なダウンロード数がカウント出来ない為)

もし、取得出来ないのでしたら、
「ファイルのダウンロード」ダイアログボックス
を利用しない、何か別の方法でありましても、
「PDFファイルを、サーバ上からダウンロード」さえ出来れば、
 (正確なダウンロード数がカウント出来れば)
上記致しました目的が達成出来てOKです。

宜しくお願い致します。

投稿日時 - 2010-09-23 14:50:03

QNo.6202428

すぐに回答ほしいです

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

既に回答済みのつもりなのですが、

1.完全完璧なダウンロード完了数を計数する方法はない(転送完了≠ダウンロード完了)
2.アクセスログの転送量がファイルサイズと一致する結果をカウントすればほぼ(実用上は完全に)実数

例えばFlashを使ってダウンロード完了をサーバに通知させるアイデアも思いつきはしますが、
ダウンロード完了しているのに完了通知が届かない事もありうるのでそこまでする意味を感じません。
パーソナルファイヤーウォールでブロックされる可能性を考えたら、
転送完了をダウンロード完了とみなすほうがまだ正確ではないでしょうか。

投稿日時 - 2010-09-24 13:29:10

お礼

ご回答いただきまして、本当にありがとうございました。

投稿日時 - 2010-09-24 14:01:51

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

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

回答(2)

ANo.1

クライアントのイベントをサーバ側が正確に把握するのは不可能です。
(関数があろうともいくらでも詐称できるし、通信障害で不達など)

正確なダウンロード完了数に近い統計なら、
アクセスログの転送量がファイルサイズと一致するものだけ転送完了とみなすのが一番近い数字になるのではないでしょうか。
(転送完了したからと言ってクライアントがダウンロードに成功しているとは言い切れない)

投稿日時 - 2010-09-23 15:02:59

補足

ご回答いただき、ありがとうございます。
最初の質問の末尾に記載させていただきましたように、

「ファイルのダウンロード」ダイアログボックス
を利用しない、何か別の方法で
「PDFファイルを、サーバ上からダウンロード」
出来る技法を、もしご存じでしたら、
アドバイスいただけましたら幸いです。

投稿日時 - 2010-09-24 00:36:33

お礼

ご回答いただきまして、本当にありがとうございました。

投稿日時 - 2010-09-24 14:06:41

あなたにオススメの質問