プロが教えるわが家の防犯対策術!

 サーブレットからファイル名(csv)を指定してダウンロード
する機能を開発しております。
操作の流れ
 (1)HTMLでsubmitボタン押下→ダウンロードを問い合わせる
  ダイアログ表示
 (2)「このファイルをディスクに保存する」を選択し[OK]を押す
 (3)「ファイルの保存」ダイアログで保存
 (4)「ダウンロードの完了」ダイアログが表示される→[ファイル
  を開く]を押すとexcelが起動しダウンロードしたcsvが表示
  される。
しかし、(1)でダウンロードするよう促されるのがCSVではなく
HTMLから呼び出したサーブレットなのです。
 一応(2)~(4)の操作でcsvをダウンロードできますが、なぜか
ブラウザ上でマウスポインタが作業中の状態(矢印と砂時計)の
まま変りません。
 次に、(1)で「このファイルを上記の場所から開く」を選択し
試しました。すると、同じダイアログでcsv(MASTER_*_*.csv)
をダウンロードするよう促されます。
今度は(2)~(4)でダウンロードでき、上で起こったような現象
も起こりません(通常時のマウスポインタ)。
 最初からcsv(MASTER_*_*.csv)をダウンロードするダイアログを
表示したいです。
 そこで、最初のダイアログが表示されないよう設定したいと思い
ますが、[この種類のファイルであれば常に警告する] チェックのON/OFF
を切り替えられせん。
 
サーブレットの一部です。
res.setContentType("text/plain; charset=iso-2022-jp");
res.setHeader("Content-Disposition","attachment; filename=MASTER_" +
 groupInp + "_" + factoryCode + "_" + date +".csv");

また、上記の"attachment; を"inline;に変えると、ブラウザの中にexcel
が起動されてしまいます。
最初のダイアログの表示をサーブレットによって制御することは可能
でしょうか?ご存知の方いらっしゃればご教示いただきたく。
よろしくお願い致します。

A 回答 (2件)

いい忘れました。


もう一つ。

ダウンロードという行為はブラウザの種類,バージョンに
大きく依存します。
例えば、IE 3.x/4.x/5.x(6.x)で
振る舞いは全て(微妙に)異なります。
Netscapeも微妙に違っていたような記憶がありますが、
よく覚えていません。

どのブラウザをターゲットにするかによって、作りが若干変わってきます。
    • good
    • 0

すみません。


質問読んでも何が要点なのかいまいちつかめませんが、
一つだけ。

ダウンロードしたいのだったら、
res.setContentType("text/plain; charset=iso-2022-jp");
はまずいのでは?

text/plainのドキュメントはブラウザ内で表示する設定にしている人も多いはず。
application/octetなどにした方がよいように思います。
    • good
    • 0
この回答へのお礼

遅くなりましたが、いろいろ試した結果、以下のように
訂正したところ、解決しました。
ありがとうございました。
-------------------------------------------------------------
res.setContentType("application/octet-stream-dummy; charset=iso-2022-jp");
res.setHeader("Content-Disposition","inline; filename=MASTER_" + groupInp + "_" + factoryCode + "_" + date +".csv");
-------------------------------------------------------------
"application/octet-stream-dummy"の部分が
"application/octet-stream"だとブラウザ内に表示されてしまいます。
(ブラウザはIE5です。)
ネスケ4.7でも同様に試しましたが、いずれもダウンロードがうまくいき
ました。

お礼日時:2002/06/07 21:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!