質問: お世話になります。 HTTP機能で、サーブレットでPDFファイルのダウンロードを行う処理の際に、 「ファイルのダウンロード」ダイアログボックス上の [キャンセル]ボタンをクリックした際の、 「キャンセルのイベント」を取得したいです。 (開発環境:WindowsXP SP3、Eclipse3.5、Java、サーブレット、JSP、 MySQL5、Apache2.2、Tomcat6等) (動作環境;サーバは、Linux(CentOS5.5)、 クライアントはWindowsXP SP2以上、 WebブラウザはInternet Explorer7以上) それを取得したい目的は、 「ファイルのダウンロード」された回数を、 毎回インクリメントして、カウント数として記録に残したい為です。 (「キャンセルのイベント」が取得出来ないと、 正確なダウンロード数がカウント出来ない為) もし、取得出来ないのでしたら、 「ファイルのダウンロード」ダイアログボックス を利用しない、何か別の方法でありましても、 「PDFファイルを、サーバ上からダウンロード」さえ出来れば、 (正確なダウンロード数がカウント出来れば) 上記致しました目的が達成出来てOKです。 宜しくお願い致します。
回答: 既に回答済みのつもりなのですが、 1.完全完璧なダウンロード完了数を計数する方法はない(転送完了≠ダウンロード完了) 2.アクセスログの転送量がファイルサイズと一致する結果をカウントすればほぼ(実用上は完全に)実数 例えばFlashを使ってダウンロード完了をサーバに通知させるアイデアも思いつきはしますが、 ダウンロード完了しているのに完了通知が届かない事もありうるのでそこまでする意味を感じません。 パーソナルファイヤーウォールでブロックされる可能性を考えたら、 転送完了をダウンロード完了とみなすほうがまだ正確ではないでしょうか。