• 締切済み

IEでダウンロードすると、拡張子がZIPになってしまう。

WindowsXP(SP3)とIE6SP3の環境なのですが、とりあえず下記のサンプルページから、ファイルをダウンロードしてみてもらえませんか。 http://www.asahi-net.or.jp/~jp3r-kmr/dummy/ この拡張子は、「.RYO」でして、自作のアプリケーション(VC++6.0で作成)のファイルなのですが、実体はZIPファイルです。 問題は、このファイルをクリックして「開く」あるいは「保存」を行うと、拡張子が「.RYO」にならず、なぜかZIP形式として扱われてしまうのです。 ※「開く」だとzipfldr.dllが起動して開かれ、「保存」だと[名前をつけて保存]ダイアログに「圧縮(zip形式)フォルダ」と拡張子を勝手に替えられてしまいます。 さらに問題なのは、上記の現象が起きる環境と起きない環境があるのです。そんなわけで、上のサンプルページを作ってみました。 ネット上でもいろいろ検索して、同様の現象がJAVAのjarファイルでも起こりうることまでは発見したのですが、「保存時に手でjarに変更すれば良い」とあるだけで、根本的な解決まではたどり着けませんでした。 どなたか、この珍現象の解決策(拡張子を必ずRYOで保存する)をご存知の方、いらっしゃいませんか?

みんなの回答

回答No.4

#2です。すみません、「解決法を」が質問でした‥‥ .htaccessを置ける環境なら、 AddType application/octet-stream ryo でMIMEタイプの宣言をしてもダメですか?(上でダメならoctet-streamでなく、#3さんにならってdummyで)

すると、全ての回答が全文表示されます。
noname#119059
noname#119059
回答No.3

回答No.1の者ですが ほかの端末で試したところダメだったので。。 PHPからDummy.ryoファイルをバイナリ出力したところ、ファイルの種類が「.ryoドキュメント」に変化しました。 Header情報の設定で、”octet-stream”ではNGでしたが ”octet-stream-dummy”では成功してます。 (サーバーの設定依存?) PHPがWEBサーバーに置ければ、以下のソースが使えます。 (JSPやCGIでも同じコトはできます) ---------------------------------- <?php /* 引数はターゲットファイルへの相対又は絶対パス */ function downloader($path_file) { /* ファイルの存在確認 */ if (!file_exists($path_file)) { die("Error: File(".$path_file.") does not exist"); } /* オープンできるか確認 */ if (!($fp = fopen($path_file, "r"))) { die("Error: Cannot open the file(".$path_file.")"); } fclose($fp); /* ファイルサイズの確認 */ if (($content_length = filesize($path_file)) == 0) { die("Error: File size is 0.(".$path_file.")"); } /* ダウンロード用のHTTPヘッダ送信 */ header("Content-Disposition: inline; filename=\"".basename($path_file)."\""); header("Content-Length: ".$content_length); header("Content-Type: application/octet-stream-dummy"); /* ファイルを読んで出力 */ if (!readfile($path_file)) { die("Cannot read the file(".$path_file.")"); } } downloader('./Dummy.ryo'); ?> --------------------------------- 添付URLよりサンプルを頂戴し、少し手を加えただけです。 大げさになってしまいましたが、ご参考までに。

参考URL:
http://www.spencernetwork.org/memo/tips-5.php
すると、全ての回答が全文表示されます。
回答No.2

XPSP3、Firefox3 普通にryoファイルとしてダウンロード。 XPSP3、IE6 zipファイルとしてダウンロード。 ちょっとググってみたら、content-typeが未知な場合、あるいは宣言されていない場合に、IEは勝手に中身を見て自動判別する模様です。

すると、全ての回答が全文表示されます。
noname#119059
noname#119059
回答No.1

当方IE(6.0)で試しても、ZIPになってしまいました。 chromeなどでは大丈夫なのですが・・・ 原因は良くわかりませんが、ローカルに 以下のようなHTMLを作りテストしたところ IEでもDummy.ryoで保存できました。 -------------------------------------- <html> <body> <form action="./Dummy.ryo" method="get"> <input type="submit" value="ダウンロード"> </form> </body> </html> -------------------------------------- 暫定対応のようですが、一応試してみてください。

すると、全ての回答が全文表示されます。

関連するQ&A