質問: サーブレットでのファイルダウンロードについて サーブレットでファイルのダウンロードを 行うプログラムを作成しているのですが ときどきダウンロードするファイルが切れている 場合があります。 なので実際のファイルとダウンロード時のファイル の違いがあった場合はjspでalert表示を行いたい のですが、うまく実行できません。 処理としては response.setheader(......) response.setcontenttype(......) 等の設定を行い ダウンロードするファイルのinputstream を作成、outputstreamにgetoutputstream() を取得してwriteしています。 上記のwriteする時に件数をカウントして このサーブレットの呼び元のjspに返却したい のですが、取得ができません。 何か参考になるサイトなどないでしょうか? よろしくお願いします。
回答: osumitanさんもおっしゃってますが、クライアントにあるファイルのチェックは 1.クライアントに目で確認してもらう 2.クライアントからアップロードしてもらう のどちらかを行わない限りはできません。 1は、ファイルサイズやファイルハッシュをダウンロード画面に表示しておき、目で確認してもらうことになります。(ファイルハッシュは算出用のアプリケーションがクライアントサイドに必要です) 2は、アップロードを行ってもらい、ファイルそのものやファイルサイズ、ハッシュなどをサーバ上でチェックします。ただし、ダウンロード時に破損したのかアップロード時に破損したのかは区別できません。 つまり、自動チェックするにはクライアントの代わりに1か2を行うダウンロード専用のアプリケーションが必要になります。 >jspでalert表示を行いたい ダウンロードの開始後には、htmlを返しても正常に処理できない可能性が高いです。返したhtmlがダウンロードファイルの最後にくっついて出力されるなどされることが多いので、これはやめたほうがいいです。 実現性を考えると、クライアントにワンアクション起こしてもらう方法になるでしょう。