• ベストアンサー
  • すぐに回答を!

お世話になります。

  • 質問No.6202428
  • 閲覧数86
  • ありがとう数4
  • 回答数2

お礼率 97% (88/90)

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

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

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

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

宜しくお願い致します。

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 34% (140/410)

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

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

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

お礼率 97% (88/90)

ご回答いただきまして、本当にありがとうございました。
投稿日時:2010/09/24 14:01

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 34% (140/410)

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

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

お礼率 97% (88/90)

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

「ファイルのダウンロード」ダイアログボックス
を利用しない、何か別の方法で
「PDFファイルを、サーバ上からダウンロード」
出来る技法を、もしご存じでしたら、
アドバイスいただけましたら幸いです。
投稿日時:2010/09/24 00:36
お礼コメント
hiroasa21

お礼率 97% (88/90)

ご回答いただきまして、本当にありがとうございました。
投稿日時:2010/09/24 14:06
関連するQ&A
ページ先頭へ