- PR -

ダウンロード機能について

投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2003/08/28
投稿数: 28
投稿日時: 2003-10-21 19:31
本日は用事がありレスが遅れてすみませんでした。
EIJIさんが書かれているようにtext/html形式で実行を行いましてもそして
例えばpdf形式で実行をしましても画面にはデータが剥き出しの状態で表示されます。
多分、自分としましてはデータをテキスト形式で取り込めてないのがまず原因であると
思っております。
自分の開発環境としましては
OS:XP(PRO SP1)
IE:6.0
JDK:1.3.0でそれほど変わった環境ではないと思っております。
ソースに関しましてはJSPのヘッダ部分に
<%@ page contentType="Application/Octet-Stream-Dummy;charset=Shift_JIS"%>
<% response.setHeader("Content-Disposition","attachment ; filename=output.txt"); %>
を埋め込んでおります。
実際にデータを取ってくるところはデバックをして確認済みです。
こんな感じの状況ですが、何故データベースから取ってきたデータをテキスト形式で
表示することができないかが、わかりません。
わかる方からのアドバイスをお待ちしております。
よっしー
会議室デビュー日: 2003/02/05
投稿数: 1
投稿日時: 2003-10-21 23:46
はじめまして。
よっしーといいます。

<%@ page contentType="Application/Octet-Stream-Dummy;charset=Shift_JIS"%>
<% response.setHeader("Content-Disposition","attachment ; filename=output.txt"); %>

このコードではほむらさんのおっしゃっているとおり、HTTPヘッダの設定をしただけで、データそのものは出力してないですよね。

<%
HttpServletOutputStream out = response.getOutPutStream();
FileInputStream in = new FileInputStream("C:\\Data\\output.txt");
byte [] buffer = new byte[4096];
int readbyte ;
while ((readbyte = in.read(buffer)) != -1 ){
out.write(buffer,0,readbyte);
}
%>

こんな感じでCSVファイルの内容をOutputStreamに出力する必要があると思います。
(ソースの動作確認はしていません。)
eiji
常連さん
会議室デビュー日: 2003/07/23
投稿数: 32
投稿日時: 2003-10-22 01:38
引用:

zzzさんの書き込み (2003-10-21 19:31) より:
例えばpdf形式で実行をしましても画面にはデータが剥き出しの状態で表示されます。
多分、自分としましてはデータをテキスト形式で取り込めてないのがまず原因であると
思っております。


何らかのデータは、画面に表示されるんですか?
表示されるなら、JAVAではなく、IEとか、OSの環境の問題かも知れません。


未記入
常連さん
会議室デビュー日: 2003/08/28
投稿数: 28
投稿日時: 2003-10-23 19:16
返信をして下さっている皆さん、いつも返答が遅れてすみません。
まず、よっしーさんが書かれている内容、データをOutputStream出力する必要が
あるとのことですが、この点に関しましては問題はないと思っております。
といいますのも、データの出力部分のソースは他の正常に動いているプログラムを
ほぼ改変せずに使っているからです。
そして、EIJIさんの書込みにありますように、データは何故か画面上に出てしまうのです
ある違うプロジェクトを見たのですが、それはダイアログボックスが表示され
データ保存が出来ていました。
このように考えてみますと、ソース上の問題ではなく環境関係の問題ではないかと
考えております。
以前にこうした問題に遭遇した方からのアドバイスをお願い致します。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2003-10-23 19:46
パルプさんが書かれているように、JSPではなくサーブレットで実装すべきでしょう。
JSPではスクリプトレットの時点で出力ストリームが開かれてしまっているので、
ヘッダの指定が無効になってしまっていると思います。
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-10-23 21:25
うまくいっているソースと比較した時にこれといった相違点が無い、という前提で。

コード:
<%@ page contentType="Application/Octet-Stream-Dummy;charset=Shift_JIS"%> 
<% response.setHeader("Content-Disposition","attachment ; filename=output.txt"); %>



ではなくて

コード:
<%@ page contentType="Application/Octet-Stream-Dummy;charset=Shift_JIS"%><% response.setHeader("Content-Disposition","attachment ; filename=output.txt"); %>



のように改行を無くすのはどうですか?
未記入
常連さん
会議室デビュー日: 2003/08/28
投稿数: 28
投稿日時: 2003-10-27 20:34
書込みをしていただいたみなさん、どうもありがとうございます。
今回の機能は正直私よりも優れた人が作成しても同じ結果となり、現在調査中となりました。色々と有益な情報を掲載していただき、ありがとうございました。これに懲りず、また宜しくおねがいします。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2003-10-28 10:17
引用:

zzzさんの書き込み (2003-10-27 20:34) より:
書込みをしていただいたみなさん、どうもありがとうございます。
今回の機能は正直私よりも優れた人が作成しても同じ結果となり、現在調査中となりました。色々と有益な情報を掲載していただき、ありがとうございました。これに懲りず、また宜しくおねがいします。



サーブレットにしてもだめだったということですか?

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