**[[続・質問箱/66]] [#qaa6d2db]
#author("2018-03-11T12:25:33+09:00;2009-11-10T13:20:59+09:00","","")
**[[質問箱/2066]] [#qaa6d2db]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|添付された *.rpm ファイルをダウンロードすると RealOnePlayer が起動してしまう|
|~バージョン|1.4.2|
|~投稿者|[[付箋]]|
|~状態|完了|
|~投稿日|&new{2004-03-04 (THU) 11:29:15};|
***質問 [#e3ba9e7e]
~*.rpm ファイルを添付されている PukiWiki ページから、*.rpm ファイルをクリックすると、ダウンロード確認ダイアログでは無く、RealOnePlayer が起動してしまいます(IE6 で右クリック [対象をファイルに保存] なら問題無くダウンロードできます)。~
これは恐らく PukiWiki では無くて Apache の設定の問題だと思うのですが、教えて下さい。~
ちなみに Apache 2.0.40 です。
***解決 [#i0c17569]
以下の変更を行うと、添付ファイルをクリックする動作がダウンロード扱いになります(ちなみに txt/jpg/gif/pdf 等もダウンロード扱いになります)。~
-plugin/attach.inc.php
 622  // for japanese (???)
 623  $filename = htmlspecialchars(mb_convert_encoding($this->file,'SJIS','auto'));
 624  header('Content-Disposition: &COLOR(red){inline};; filename="'.$filename.'"');
 625  header('Content-Length: '.$this->size);
 626  header('Content-Type: '.$this->type);
 627  @readfile($this->filename);
 628  exit;
624 行目にある inline を &COLOR(red){attachment}; へ変えるだけです。~
 624  header('Content-Disposition: attachment; filename="'.$filename.'"');

***回答 [#h1ffb45b]
-[[いたち]] &new{2004-03-04 (THU) 11:48:05};
~Apacheではなく、クライアントの問題ではないでしょうか?~
クライアントのOSが分かりませんが、Windows XPならエクスプローラの[ツール]メニューから[フォルダオプション]を選択し、[ファイルの種類]タブで該当する拡張子を選択して[詳細設定]を行うことで変更できます。
-[[付箋]] &new{2004-03-05 (FRI) 11:01:50};
~私は、サーバの返すヘッダ情報に問題があると思うのですが、どうでしょうか?
-[[いたち]] &new{2004-03-05 (FRI) 11:37:49};
~右クリックの[対象をファイルに保存]と、単なるクリックでリクエストが違うということでしょうか?
~Apacheが生成するヘッダ情報に問題があるならば、上記の2種類でリクエストが異なっている必要があります。
~ちなみに、ヘッダに違いはありましたか?
-[[reimy]] &new{2004-03-08 (MON) 05:58:55};
~PukiWiki 1.4では、添付ファイルのMIME-TYPEは:config/plugin/attach/mime-typeの中で設定します。設定されていないものについては、Apacheで設定したMIME-TYPEになります。とくに指定していなければ、application/octet-streamのMIME-TYPEになります。デフォルトでは、.rpmに対するMIME-TYPEは:config/plugin/attach/mime-typeの中には設定されていませんので、Apacheでとくに設定しないかぎり、application/octet-streamになります。この場合、左クリックであろうと右クリックであろうと、送られてくるヘッダ情報のMIME-TYPEは[[いたち]]さんが書かれているように、同じです。左クリックの時と右クリックの時で、サーバーが異なるMIME-TYPEを送ってきたりはしません。
~MIME-TYPEに対する左クリック及び右クリックでのブラウザの挙動は、クライアント側の設定に依存します。RealPlayerのプラグインが組み込まれている場合は、.rpmのファイルのMIME-TYPEはaudio/x-pn-realaudio-pluginと判断されるはずです。
-[[reimy]] &new{2004-03-08 (MON) 06:24:03};
~URLに添付ファイルのrpmファイルを指定して、[[WebSniffer:http://web-sniffer.net/]]でテストしてみました。サーバーからのResponse Headerは次のようになりました。
 Content-Disposition:	inline; filename="test.rpm"
 Content-Type:	application/octet-stream
~RealPlayerのプラグインをブラウザに組み込んでいると、これをaudio/x-pn-realaudio-pluginと''拡張子から判断''して、プラグインを起動します(サーバーから送られるMIME-TYPEで判断しているのではない)。''これはサーバー側の設定ではなく、クライアント側の設定によるものです''。プラグインを組み込んでいなければ、ファイルのダウンロードになります。
~というわけで、サーバの返すヘッダ情報に問題はありません。
--[[付箋]] &new{2004-03-08 (MON) 09:41:29};
~[[reimy]]さん、詳しいレポートありがとうございました。とても分かりやすかったです。
-[[付箋]] &new{2004-03-08 (MON) 10:56:57};
~動作プロセスは理解できましたが、rpm ダウンロードするのに、RealOnePlayer が起動してしまうのは、やはりお行儀が悪いです。全ての利用者にブラウザの設定を浸透させるのは限界があるだろうし、サーバ側でうまく吸収する方法があれば良いのですが。
やはり、ブラウザが拡張子で判断している以上、どうする事もできないのでしょうかね?「私ならこうしている」という方、ヒントがあれば教えて下さい。
--[[reimy]] &new{2004-03-08 (MON) 11:10:55};
~RealOnePlayerの「ツール」→「環境設定」の「コンテンツ」→「メディアの種類」で該当するファイル(拡張子)の関連づけをはずすくらいしか方法はないでしょ。関連づけをはずしても再生は可能ですから。
---[[付箋]] &new{2004-03-08 (MON) 15:42:59};
~返信頂きましてありがとうございました。
私のやりたかった事が、サーバ側のヘッダ情報を変更するだけで[[解決>続・質問箱/66#i0c17569]]できました。詳しくは[[こちらで>続・質問箱/66#i0c17569]]。
---[[reimy]] &new{2004-03-08 (MON) 22:45:22};
~.rpmに限らず、すべての添付ファイルで同じ動作になりますが、それでよかったんですね? 画像ファイルまでダウンロードになってしまうので、それだと拙いんじゃないかと。それでよいなら、いいんですが。
---[[付箋]] &new{2004-03-09 (TUE) 02:37:26};
~画像ファイル用に処理を分岐させても良いですが、全ての添付ファイルがダウンロードになるのも自然だし、こっちの方が良いと思いました。
-[[いたち]] &new{2004-03-08 (MON) 19:52:00};
~おー、ヘッダ情報も関係があったようですね。
~私も勉強になりました。
~付箋さん、分かりにくいコメント付けてしまいました。これからは気をつけます。⌣
-[[付箋]] &new{2004-03-09 (TUE) 02:00:26};
~いたちさん、[[reimy]]さん、ありがとう御座いました。

//#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.073 sec.

SourceForge