- PR -

ダウンロードデータに空白行が出力されてしまいます。

1
投稿者投稿内容
パズー
会議室デビュー日: 2005/03/12
投稿数: 3
投稿日時: 2005-06-03 13:32
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment; filename=test.csv");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
JSPで上記を実行させたところtest.csvファイルになぜか空白行(改行)が7行できてしまいます。この現象はAPサーバーがWeblogicでなり、Tomcatの場合は起こりません。
データを入れて出力すると上に6行空白で次の行からデータが出力され最終行に空白行が
出力されます。誰か同じ現象が起きたからいますか?解決方法がありましたら、教えてください!お願いします。

[ メッセージ編集済み 編集者: パズー 編集日時 2005-06-03 13:34 ]

[ メッセージ編集済み 編集者: パズー 編集日時 2005-06-03 14:58 ]
永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2005-06-03 14:39
今、手元にWeblogicが無いので確認出来ず、ただの推測ですが。
JSP→Servletの変換でJSPソース上の改行がそのまま出力の改行として変換されているという可能性はないでしょうか?

一番最初のものから一切(JSPソースレベルで)改行を入れずに

コード:

response.setContentType("application/octet-stream");response.setHeader("Content-...以下略



こんな感じで改行無しで記述してみてはいかがでしょうか?

個人的には、出力を厳密に扱いたいならJSPなんて高度にラッピングされた手法に拘るのではなくて、もう一段階低レベルなところ(Servlet)に降りてみるのが早いとは思うのですが……

[ メッセージ編集済み 編集者: 永井和彦 編集日時 2005-06-03 14:49 ]
パズー
会議室デビュー日: 2005/03/12
投稿数: 3
投稿日時: 2005-06-03 15:48
解決できました!ご指摘の通り、改行なしで記述してみたところ出力ファイルに改行なしで出力できました。この件でかなり悩んでしまいました、永井さん本当にありがとうございました!
1

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