- - PR -
ファイルを開くと何も表示されない。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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); } } |
|
投稿日時: 2008-09-29 17:32
ファイルを開いたときに、テンポラリフォルダには、日本語をエンコードしたファイル名で保存されていたためだと分かったのですが、
正常にファイルを開く術が分かりません。 ご教授願います。 |
1