- PR -

servlet ファイルダウンロード

1
投稿者投稿内容
ヤミーズ
常連さん
会議室デビュー日: 2004/09/06
投稿数: 27
お住まい・勤務地: 東京都世田谷区
投稿日時: 2004-11-10 18:48
質問ばかりですみません。お世話になっております。

 servletからファイルをダウンロードするプログラムにおいて
 ダイアログ表示後、保存ボタン押下をしてもファイル転送が開始
 されずフリーズします。
 また、linuxでtopコマンドを行うと99% javaプロセスがCPUを占有しています。

 他サイトを参考にしましたが不具合箇所がわからず、ご指摘ねがいます。
 ・ブラウザへの画像表示がうまくできた為、ダウンロード時は
  "response.setContentType","response.setHeader"のみの変更でOKというのが
  違うのでしょうか?

【ダウンロードソース】
 response.setContentType("application/octet-stream");
 response.setHeader("Content-Disposition","attachment;filename\\"taifuu18.jpg\\"");
 ServletOutputStream out = response.getOutputStream();

 /* ラージオブジェクト取得 */

 //データ長設定
 int dataLength = obj.size() ;
 response.setContentLength( dataLength );

 //ラージオブジェクトデータ取得
 byte buf[] = new byte[obj.size()];
 obj.read(buf, 0, obj.size()) ;

 //ラージオブジェクトデータ書き込み
 while (dataLength >= 0)
 {
   out.write(buf, 0, dataLength);
 }

 //クローズ処理
 out.close();
 obj.close();
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2004-11-10 18:52
引用:

 obj.read(buf, 0, obj.size()) ;

 //ラージオブジェクトデータ書き込み
 while (dataLength >= 0)
 {
   out.write(buf, 0, dataLength);
 }



ここが、無限ループになっているためです。
1

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