- PR -

ファイルを開くと何も表示されない。

1
投稿者投稿内容
machan1
会議室デビュー日: 2008/05/18
投稿数: 11
投稿日時: 2008-09-29 17:16
一度Excelファイルを出力した後、以下のようなソースを使って、
Excelファイルのダウンロードを行った場合、
ダウンロードダイアログが出力されます。

そこで、ダウンロードダイアログで、保存ボタンを押して保存したファイルを
開くと正常に開くことができるのですが、
ダイアログから開くを押すと、Excelには何も出力されません。

この現象を解決するには、どのようにしたら良いのでしょうか?

String filename = "ファイル名";
String file = "C:\\tools\\bi\\temp\\" + filename;
res.setContentType("applicaiton/octet-stream");
res.setHeader("Content-Disposition","attachment; filename=\"" + URLEncoder.encode(filename, "UTF-8") + "\"");

FileInputStream istream = null;
ServletOutputStream ostream = null;

try{

// ファイル読み込み用ストリームを生成
istream = new FileInputStream(file);

// ダウンロード用ストリームを取得
ostream = res.getOutputStream();

if(istream != null && ostream != null){

//レスポンスオブジェクトへバイトコピー
byteCopy(istream, ostream);
}
}finally{
if (istream != null) {
istream.close();
}
if (ostream != null) {
ostream.close();
}
}


private void byteCopy(FileInputStream istream, ServletOutputStream ostream) throws IOException {

byte[] buf = new byte[1024];
int size = 0;

// ファイル読み込み
while((size = istream.read(buf)) != -1) {

// 読み込みデータをダウンロード用ストリームに出力
ostream.write(buf, 0, size);
}

}
machan1
会議室デビュー日: 2008/05/18
投稿数: 11
投稿日時: 2008-09-29 17:32
ファイルを開いたときに、テンポラリフォルダには、日本語をエンコードしたファイル名で保存されていたためだと分かったのですが、
正常にファイルを開く術が分かりません。

ご教授願います。
1

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