- - PR -
ダウンロード処理の件について
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-28 10:36
いつもお世話になります。いのきです。
javaでダウンロード処理を行っているのですが、質問があります。 データのダウンロード処理は通常ダイアログが表示され、「開く」や「保存」を 行いますが、ダイアログを表示せず、そのまま保存することはできるでしょうか? 現在のダウンロード処理のソースを以下に記述します。
上記だとダイアログ表示され、しかもそのダイアログにあるチェック(何のチェックか忘れました・・・)を はずすとダイアログが表示されず、ダイアログの「開く」と同じように、画面にダウンロード内容が 表示するだけになってしまいました。 よって、ダウンロード処理時は「指定したパスにデータをダウンロードしたファイルを保存するだけ」にしたい のですが、可能でしょうか? 尚、環境は以下の通りです。 ***** 環境 ***** OS:WinXP DB:Oracle10g JAVA:j2sdk1.4.2_08 ブラウザ:IE6.0 **************** 以上、お忙しいところ申し訳ありませんが、宜しくお願い致します。 | ||||||||||||
|
投稿日時: 2005-12-28 11:48
こんにちは、でっちです。
サーバから送出されたストリームをどう扱うかはクライアント側の振る舞いになるので、 サーバサイド処理ではどうやっても無理です。 制御したいのであれば、ActiveXなどクライアント側で動作するプログラムが必要になります。 ちなみに保存のダイアログは、 エクスプローラのツール中のフォルダオプションを開く →ファイルの種類で該当の拡張子を選択 →詳細設定でファイルの種類の編集ダイアログを開き、「ダウンロード後に開く確認をする」をチェック で再度表示されるようになると思います。 #「同じウィンドウで開く」のチェックを外すのかも。 #ちょっと記憶が混ざってるので自身がないです。 | ||||||||||||
|
投稿日時: 2005-12-28 12:22
セキュリティ上の問題がありますから、勝手にローカルに保存する事はできません。
でっちさんの仰るとおり、ActiveX等の外部プログラムを実行させる必要があります。 もし、自動でダウンロードが可能になった場合、 1.メールなどで悪意のあるURLへ誘導 2.スタートアップフォルダやsystem32フォルダ等にウィルスをダウンロード 3.安全そうなポータルサイト等にリダイレクト の様な感じで、簡単にウィルスをばら撒く事が可能になります。 | ||||||||||||
|
投稿日時: 2005-12-28 13:16
いつもお世話になります。いのきです。
でっち6号さん、かつのりさん、ご回答、誠にありがとうございました。 サーバサイドでは無理なのですね。 では、これに関する質問内容を変えさせていただきます。 ダウンロード時に出力されるダイアログに関して、「開く」ボタンがなく 「保存」ボタンと「キャンセル」ボタンで構成されているダイアログを目にしました。 しかし、サイト等を調査しているのですが、その方法が見つかりません。 ご存知でしたら、教えていただけないでしょうか?
今回CSVファイルなので、拡張子が「CSV」の内容を調べたのですが、 ・ダウンロード後に開く確認をする:チェックされている ・同じウィンドウで開く:チェックされていない(編集不可になっている) でした。 この他にもダイアログを再び出力する方法はないでしょうか? | ||||||||||||
|
投稿日時: 2005-12-28 13:24
でっちです。
XPにはSP2は適用されてますか? その場合拡張子「xls」側も調整しなければなりません。
それは該当ファイルを開くアプリがない場合のダイアログではないでしょうか? | ||||||||||||
|
投稿日時: 2005-12-28 13:54
いつもお世話になります。いのきです。
でっち6号さん、ご回答ありがとうございました。
おっしゃる通り、SP2適用であるため、「xls」側を修正したらダイアログが表示されました。 ありがとうございます。
確かにそれは対象アプリがないファイルでした。 という事は、CSV形式でダウンロードするファイルに関しては「開く」ボタンをなくすのは 無理なのでしょうか? | ||||||||||||
|
投稿日時: 2005-12-28 21:49
でっちです。
おそらく無理でしょうね。とりあえず参考ページです。 FIX: Content-Disposition: Does not Force File Download Dialog ↑のページの下のほうにエクスプローラがファイルの種類を判断するため、ダウンロードを強制する方法はないってなことが書かれているようです。(英語弱いので間違ってるかもしれませんが) 抑止したいのは『同じページで開く』動作だけですかね? それだけなら高さ0のフレームを使うとか何かしらの回避方法はありそうです。 (まあこれだと開いても何も起きないので、ユーザフレンドリじゃないですけど。) 静的ファイルならwindow.openでダウンロードとかお手軽な回避方法があるんですけどねー。 ところで今気付いたのですが、Content-Dispositionに"attachment;"が抜けてませんか? [HOWTO] 既知の MIME タイプに対し [ファイルのダウンロード] ダイアログ ボックスを開く | ||||||||||||
|
投稿日時: 2005-12-29 10:08
いつもお世話になります。いのきです。
でっち6号さん、ご回答ありがとうございました。 ダウンロードに関しては、別の回避策を検討致します。 なお、ご指摘がありましたように、「attachment」が抜けていました。
にします。 ありがとうございました。 |
1