- - PR -
ダウンロードダイアログを出さない方法について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-12 15:01
現在Webアプリを開発しています。
ブラウザからファイルのダウンロードをしたいのですが 通常ダウンロードの場合、リンクをクリックすると 「開く」「保存」「キャンセル」のダイアログが表示されますが、 そのダイアログを表示しないでクライアントのアプリを立ち上げる方法がわかりません。 (例:XX.docファイルの場合、クライアントのWordが起動) サーバ側で制御したいのですが、できるのでしょうか? ちなみにダウンロードしたいファイルは クライアント側で拡張子の関連付けを設定済みのファイルです。 宜しくお願いいたします。 Win2003Server + VS.NET 2003です。 | ||||
|
投稿日時: 2004-02-12 15:57
クライアントのセキュリティに関わるので、できません。
そのようなことができたとして、ウイルスを仕込んだ実行ファイルをダウンロードさせるページがあふれていたらどうします? | ||||
|
投稿日時: 2004-02-12 16:09
exeではなくて、文書ファイル(docとかpdfとか)をアプリケーションで開いて欲しいということでは?
http://www.studyinghttp.net/rfc_ja/rfc2183_ja.html inlineとかどうです?(試してないけど) | ||||
|
投稿日時: 2004-02-12 16:27
拡張子の関連付けでOpenのアクションではなく、MIMEを設定する必要があると思います。 [ メッセージ編集済み 編集者: todo 編集日時 2004-02-12 16:29 ] | ||||
|
投稿日時: 2004-02-12 16:56
じゃぁ、 そのようなことができたとして、マクロウイルスを仕込んだWORD文書をダウンロードさせ、開かせるページがあふれていたらどうします? と改めます ^^; | ||||
|
投稿日時: 2004-02-12 17:10
みなさんレスありがとうございます。
おっしゃる通り危険性は認識しているのですが、それを承知で 技術的に可能であるかどうかということで宜しくお願いいたします 例えばWordの場合、 IISのMIMEに拡張子「.doc」 MIMEの種類「application/ms-word」 と設定 コード上で Response.AppendHeader( "content-disposition","inline; filename="test.doc"); Response.ContentType = "application/ms-word"; Response.WriteFile(@"c:\test\test.doc"); Response.End(); としましたが、やはりダイアログが表示されました。 ただ拡張子の関連付けのところで「ダウンロード後に開く確認する」のチェックが 外れていればダイアログが表示されないのですが、 「ダウンロード後に開く確認する」がチェックされていた場合はどうやっても ダイアログが表示されてしまうのでしょうか? | ||||
|
投稿日時: 2004-02-12 18:11
サーバ側で制御してクライアントの設定を上書きすることが「技術的に可能」であるなら、それは「セキュリティホール」です。。。 | ||||
|
投稿日時: 2004-02-12 18:11
docやらexeがサーバー側の設定のみでダイアログが表示されないようになってしまうと、
おそらくそのブラウザはセキュリティの問題として話題に上り、修正されるでしょう。 (逆に言うと、もしこれをやろうとすると、セキュリティの隙を突かないと無理という事です) 結論を言えば、クライアント側で設定をいじらないと無理です。 |