- PR -

IE5.0におけるファイルのダウンロード

1
投稿者投稿内容
taku
会議室デビュー日: 2005/03/17
投稿数: 3
投稿日時: 2005-03-17 16:54
初めて投稿します。takuと申します。

strutsでwebアプリケーションを開発しているのですが、
添付ファイルをダウンロードする機能で、
IE5.0(SP2でも駄目でした)の場合に何故かjpgファイルがダウンロード出来ません。

具体的にはダウンロードダイアログで「開く」を選択した後、
ダウンロードが始まるのですが、そこから何時間経ってもダウンロードが
終わらないといった状態です。

IE5.5以上なら問題なくダウンロード出来ますし、IE5.0の場合でも
jpg以外のファイル(確認済なのは、xls,doc,txt,bmp,csv,html)
なら問題なくダウンロード出来ます。

処理としては、ダウンロードを実行するとサーブレットへsubmitされ、
ダウンロード処理が走るようになっています。

ソースは以下の様になっています。
response.setContentType("application/octet-stream-dummy; charset=Shift_JIS");
response.setHeader("Content-Disposition",
           "attachment; filename=" + actionForm.getFileName() );

// 表示ファイルの絶対パスを取得
String imgDir = context.getRealPath( actionForm.getUrl() );
// 表示ファイルの取得
File f = new File( imgDir );

BufferedInputStream in = new BufferedInputStream(new FileInputStream(f));
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
int x;
while ( ( x = in.read() ) >= 0 ){
 out.write(x);
}

どなたかお分かりの方おられましたら、ご教示お願い致します。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-03-17 18:17
まずシンプルなサーブレットを作って Struts が関係しているのかどうか切り分けてみてはいかがでしょうか?
#おそらく関係ないですが
また、パケットキャプチャをして他のファイルを配信したときとの違いを比べてみるのも良いかと思います。
taku
会議室デビュー日: 2005/03/17
投稿数: 3
投稿日時: 2005-03-18 09:55
インギさん、ありがとうございます。
遅レスですいません。

取り合えずstrutsの関係を調べてから、
パケットキャプチャを試してみようと思います。
taku
会議室デビュー日: 2005/03/17
投稿数: 3
投稿日時: 2005-03-18 11:34
何とか解決しました!
先ずファイル名から拡張子を取得し、それがjpgなら
setContentTypeに"image/jpeg; charset=Shift_JIS"
と指定することによりIE5.0でも
無事ダウンロード出来るようになりました。

最初のapplication/octet-stream-dummy
はファイル形式を意識しない
バイナリデータのために利用するタイプのようなのですが、
IE5.0の場合、少なくともjpgはこれでは駄目みたいですね。

ご意見を下さったインギさん、ありがとうございました。
1

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