- PR -

Resin ファイルダウンロードでファイルが壊れる

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/08/25
投稿数: 5
投稿日時: 2007-01-12 13:25
Resin 3系での開発をしております。

以下のようなファイルをダウンロードするJSPを動かしたところ、
必ずダウンロードされたファイルが壊れてしまい、開くことができません。
同じJSPをTomcat5.0系で動作させたところ、ファイルが壊れることはありませんでした。
Resin固有の問題なのでしょうか?
同じような問題を対処されたことのある方、解決方法をご存知の方おりましたら
情報を教えていただけないでしょうか?
よろしくお願いいたします。

----以下JSP(download.jsp)---
<%@ page language="java" contentType="text/html; charset=Shift_JIS"
pageEncoding="Shift_JIS"%>
<%@ page import="java.io.*" %>
<%

FileInputStream fIn = new FileInputStream("c:/work/manual.ppt");
BufferedInputStream bufIn = new BufferedInputStream(fIn);
byte[] buf = new byte[1024];

OutputStream os = response.getOutputStream();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=manual.ppt");
for (;;) {
int end = bufIn.read(buf, 0, buf.length);
if (end < 0) {
break;
}

os.write(buf, 0, end);
}
fIn.close();
os.flush();
os.close();

%>

環境
OS:Windows XP SP2
SDK:j2sdk_1.5.0_10
APServ:Resin 3.0.19
Client:IE7, FF2
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-01-12 13:33
%>と<%の間の改行が送られてしまうのと、contentType が page ディレクティブの宣言と、 setContentType で設定しているのが異なっているのが気になりますね。
#ContentType についてはレスポンスのコミット前であれば一応上書きされますが・・・

この手のコードはサーブレットとして書いた方が無難です。
未記入
会議室デビュー日: 2005/08/25
投稿数: 5
投稿日時: 2007-01-24 14:50
インギさん
返信が遅くなりすいませんでした。

問題は、ご指摘の方法で無事解決いたしました。
ありがとうございます。
1

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