• ベストアンサー

LZHファイルがダウンロードできない

以前同様の質問をしたのですが、(http://oshiete1.goo.ne.jp/kotaeru.php3?q=554385)解決に至らなかったため再度質問させていただきます。 ----------- ホームページでCGI素材配布しています。 いくつか修正してファイル圧縮してアップしたのですが、ダウンロードせずに内容表示*してしまいます。 (*内容表示=!シ-lh5-~~のようにソース表示してしまう。解凍したものを表示しているわけではない。) 前バージョンでは正常にDL出来ていました。ユーザーの方からバグ報告を受け数箇所改造して圧縮→FTPアップしたらこのようになってしまいました。 まずは圧縮したファイルを疑いました。が、PC上では正常に解凍されます。 で、他のファイルを適当に圧縮→FTPでアップ→DLすると、ちゃんと「DLしますか?」の警告が出ます。 ファイル名が悪いのかと思い変えてみましたが、ダメでした。 フォルダに入っている状態が悪いのかと考え、ファイルだけを選択→圧縮してみましたが、これまたダメでした。 使っているソフトは+lhaca1.18でlzhで圧縮しています。 他のファイルが正常に圧縮→DL出来た所を見るとソフトが悪いわけでも無いように思うのですが… 以前質問したときには、キャッシュが…とか、ブラウザが…など、私の環境がだめだからという指摘を受けたのですが、この現象に気がついたのは私ではなくダウンロードしようとした第3者だったんです。環境とかはあまり関係ないように思います。 さらに、同内容のものを同じソフトでZIPで圧縮するとDL出来ます。 何がおかしいのでしょう?他に何かチェックすべき点はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.10

> 結局なんなだったんでしょうね… ブラウザの仕様、もしくはバグってことになると思います。 処理の流れ(Win/IEの場合)をまとめて見ました。 単なる推測の集まりですから、間違っている可能性がありますけど。                 YES ヘッダにMIMEがあるか? ――→それに従う     |              (今回はこれで解決)     |NO     ↓                      レジストリにその拡張子    YES のMIMEが登録されているか?――→それに従う     |NO     ↓ ファイルの先頭領域か  YES らMIMEを決定できるか?――→それに従う     |            (ここで誤認が起きてlzhが     |            htmlと判断されたため、     |NO          内容が表示されていた)     ↓ ダウンロード (今までlzhはこれでダウンロードされていた) 多分こんな感じだと思います。 ただわからないのが画像のみでも内容が表示されたことなんですよね。 htmlのタグも無いのに何故?って感じです。 そのファイルの先頭領域をバイナリエディタで開けばわかるかもしれませんけど。

master-3rd
質問者

お礼

またまた返答ありがとうございます。 >ブラウザの仕様、もしくはバグ この状況ではそうかもしれませんね。 完璧な問題解決とは行きませんでしたが、放置してもこれ以上回答は得られなさそうなので、とりあえず終了させていただます。 回答ありがとうございました。

その他の回答 (9)

noname#199778
noname#199778
回答No.9

自分のレンタルスペースで試してみました。 対象のファイルのzipファイルを展開した後、 +Lhaca1.18でlha圧縮>不具合が再現(テキストとして表示)しました Lhaplusでlha圧縮>ダウンロードできました Lhazでlha圧縮>ダウンロードできました すべてフォルダごと、一括して圧縮した結果です。 とりあえず、Lhaplusでフォルダを丸ごと圧縮してみるか、Lhazをダウンロードしてきて、それでlha形式でフォルダごと圧縮してダウンロードできるかどうか試してみるのも良いと思います。 ダウンロードを試す時は、直前にインターネット一時ファイルを破棄しておいた方が良いかも知れませんね。 解決に至れば良いのですが…

master-3rd
質問者

お礼

返答ありがとうございます。 とりあえずは、MIMEタイプの指定をして無事DL出来ることを確認しましたが、やっぱり根本的な解決にはならないですよね。 結局なんなだったんでしょうね…

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.8

>最初にindex.html以外を普通に圧縮してから、[編集]→[追加圧縮]で… > やってみましたが、だめでした。 私も試して見ました。 Lhacaの場合は追加しても、勝手に書庫の配列を変えてファイル名順に並べ替えてしまうようです。 これだと後からindex.htmlを追加してもできあがるものは、最初から入れてた時のものと一緒になってしまいますね。 Lhazだと後ろに付け加えるようにしてくれるのですが。 画像ファイルのみを固めたもので、ファイルの中身がテキストとして表示されるというのはこちらでは確認できませんでした。 Acrobat Readerのせいでアイコンになって表示されてしまいましたけど(昨日は普通にダウンロードできていたのに・・・) 一応MIMEの設定も可能なようであれば、しておいてください。 IEがMIMEを無視したりしなければ、ちゃんとダウンロードできるようになると思います。

master-3rd
質問者

お礼

返答ありがとうございます。 とりあえずは、MIMEタイプの指定をして無事DL出来ることを確認しましたが、やっぱり根本的な解決にはならないですよね。 結局なんなだったんでしょうね…

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.7

(誤) ブラウザにとってわけのわからない形式 (正) ブラウザにとってわけのわからない拡張子 でした。 わけのわかる拡張子はtext、html、xml、プラグインが使用する拡張子、MIMEで定義されているもの、ぐらいになると思います。 ブラウザによって挙動は違うでしょうが、これ以外の拡張子が来た場合は、まずファイルの先頭を読みこみ、そこから上記に当てはまるものがあればそれに従い、無ければダウンロードという風になっているのでしょう。 この領域に<html><body></body></html>のようなhtmlの記述があると、lzhをhtmlとして誤認してしまうようなので、#6で書いたようにindex.htmlを後ろのほうに格納されるようにするか、MIMEの設定でlzhをapplication/octet-streamなどと明示してやれば回避できるかもしれません。

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.6

index.htmlが無圧縮でlzh書庫に格納さているらしく(LHAの仕様?)、なかの<html><body></body></html>にブラウザが反応して、lzhをhtml形式と判断してしまうみたいです。 ブラウザにとってわけのわからない形式のファイルが来たときには、先頭の数百バイトをあらかじめダウンロードして、その内容からファイル形式を決定しているみたいなので意図的にindex.htmlの格納場所を書庫の後ろのほうにしてブラウザに見せないようにする必要があるようです。 index.htmlに適当に文字(スペースなど)を足して圧縮されるようにしてもいけるみたいですけど、あんまりスマートではないですね。 最初にindex.html以外を普通に圧縮してから、[編集]→[追加圧縮]でindex.htmlを追加するようにしてみてください。 http://arena.nikkeibp.co.jp/tec/online/gaz/2/

master-3rd
質問者

お礼

返答ありがとうございます。 まずは、 >最初にindex.html以外を普通に圧縮してから、[編集]→[追加圧縮]で… やってみましたが、だめでした。 で、以下があれからやってみたことです。(指定が無いものは+Lhacaで圧縮) 作業手順というか、順番がめちゃくちゃです。イライラの最高潮です(笑) 1)フォルダに入れて、フォルダごと圧縮→NG 2)フォルダ名を変えて圧縮、ファイル名も別のものに→NG 3)中にあるhtmlファイルだけを圧縮→OK 4)中に入っている画像ファイルだけを圧縮→NG 5)中に入っている画像ファイルだけをLhaplus圧縮→NG 6)中に入っている画像ファイルだけをLhaplus圧縮、選択ファイル(ドラッグするときに押しているファイル、ファイル名になるもの)を変更→OK 7)中に入っている画像ファイルだけをLhacaで「ctrl」を押しながら、選択ファイル(ドラッグするときに押しているファイル、ファイル名になるもの)を変更→OK 8)さらに、cgiファイルを追加→OK 9)もう一回やってみるとNG(ナゼ!!) 10)デスクトップ上の適当なテキストファイルを圧縮→ファイル名をlinkle.lzhに変換→NG(キャッシュが残ってただけ?でも、中のソースにはファイル名がちゃんと変わってるのが確認できたし…) 11)デスクトップ上の適当なテキストファイルを圧縮→OK 12)FFFTPで直接サーバ上のファイル名をlinkle.lzhに変更→OK 13)隣のサブマシンで圧縮→NG ?????? もう、ぜんぜん法則がわかんないです。 お暇だったらzipの方をDLしてどなたか試したもらえませんか? URLは直接書くと消されそうなので下の方の回答を参考にしてたどり着けたらお願いします。

noname#199778
noname#199778
回答No.5

また失礼します。 どのサーバでも不具合を起こしているとなると、その圧縮される特定のファイルと、その圧縮形式が、サーバにおいたときに不具合を起こす組み合わせになっているという意味で、サーバとファイルと圧縮形式の相性があっていないということが疑わしいようですので、とりあえず現状でできあがった圧縮ファイルがサーバにおくのに適していないということだと思います。 どういったことが引っかかってこういう現象になるのかは相変わらず皆目見当がつかないのですが… ところで、どうしてもLHA方式の圧縮ファイルで配布したいというのであれば、他の圧縮ソフトを試してみるのも手かと思います。 +Lhaca1.18ではなく、LhaplusやLhazなど、他のLHA形式での圧縮をサポートしているソフトでファイルを圧縮してみてはいかがでしょうか。 圧縮ファイルは、同じ圧縮形式であっても、使うソフトによって若干データサイズが異なるケースがあるので、もしかしたら圧縮ソフトを代えることで、問題解決に至るかも知れません。 失礼しました。

master-3rd
質問者

お礼

返答ありがとうございます。 まずは、 >他のLHA形式での圧縮をサポートしているソフトでファイルを圧縮… やってみましたが、だめでした。 で、以下があれからやってみたことです。(指定が無いものは+Lhacaで圧縮) 作業手順というか、順番がめちゃくちゃです。イライラの最高潮です(笑) 1)フォルダに入れて、フォルダごと圧縮→NG 2)フォルダ名を変えて圧縮、ファイル名も別のものに→NG 3)中にあるhtmlファイルだけを圧縮→OK 4)中に入っている画像ファイルだけを圧縮→NG 5)中に入っている画像ファイルだけをLhaplus圧縮→NG 6)中に入っている画像ファイルだけをLhaplus圧縮、選択ファイル(ドラッグするときに押しているファイル、ファイル名になるもの)を変更→OK 7)中に入っている画像ファイルだけをLhacaで「ctrl」を押しながら、選択ファイル(ドラッグするときに押しているファイル、ファイル名になるもの)を変更→OK 8)さらに、cgiファイルを追加→OK 9)もう一回やってみるとNG(ナゼ!!) 10)デスクトップ上の適当なテキストファイルを圧縮→ファイル名をlinkle.lzhに変換→NG(キャッシュが残ってただけ?でも、中のソースにはファイル名がちゃんと変わってるのが確認できたし…) 11)デスクトップ上の適当なテキストファイルを圧縮→OK 12)FFFTPで直接サーバ上のファイル名をlinkle.lzhに変更→OK 13)隣のサブマシンで圧縮→NG ?????? もう、ぜんぜん法則がわかんないです。 お暇だったらzipの方をDLしてどなたか試したもらえませんか? URLは直接書くと消されそうなので下の方の回答を参考にしてたどり着けたらお願いします。

回答No.4

データ量とかはいかがでしょうか? 問題のファイルのデータ量が大きすぎるとか・・・? 巨大サイズのデータで試してみてはいかがでしょう? また、よろしければ現象の発生しているアドレスを 教えていただけますか?

master-3rd
質問者

補足

回答ありがとうございます。 ファイルサイズは微々たる物です。ただのCGIですから。 えと…28kb程度ですね。 アドレスは、直接書くと消されそうなので… 回りくどい手ですけどお願いします。 googleで「cgi linkle 改」で検索します。 アドレスにt-roomってのがあるのが3つ目くらいに出てくると思います。 アドレスの最後「menu.html」を削除し、 dl/linkle.lzh dl/linkle.zip で確認してください。両方とも同じ内容で、ただ単に圧縮形式を変えてるだけです。 よろしくお願いします。

noname#199778
noname#199778
回答No.3

以前の質問に回答したものです。 度々失礼します。 前の方の指摘にもありますし、先の時にも指摘したのですが、サーバ側の問題が考えられるのではないかと思います。 もし自分が管理しているサーバであれば、httpd.confの設定を見直して、lzhファイルのMIMEタイプの設定が間違っていないか確認する必要があると思います。 自分が管理しているサーバではなくても、自分で.htaccessを定義してCGIの動作などを制御できるサーバをお使いであれば、.htaccessのMIMEタイプの設定を見直してみる必要があると思います。 サーバの設定を見直すか、サーバの管理者に問い合わせてみるのが良いと思いますよ。 特定のlzhファイルだけにその異常が起きて、そのlzhファイルが他のlzhファイルとは別のディレクトリにある場合であれば、そのディレクトリ上の.htaccessファイルの異常と考えるのが妥当なのではないかとも思います。 もしそのあたりに原因がないとしたら、サーバとファイルと圧縮形式の相性と割り切って、他の圧縮形式で保存して配布するより他ないように思います。 度々失礼しました。

master-3rd
質問者

補足

再度回答ありがとうございます。 同フォルダ内にある他のLZHファイルは正常にダウンロードできます。そのファイルのみDL出来ません。 これでもサーバの問題が考えられますか? また、サーバはレンタルサーバです。httpd.confの設定を見直すことは困難です。 さらに、.htaccessのMIMEタイプですが、上にも述べたとおり、同フォルダ内にある他のLZHファイルが正常にDL出来る事を考えると別におかしくないように思えるのですが…この考えは間違っていますか? さらに、今回、別件でサーバを移動しました。そこでも同じ状況です。 >サーバとファイルと圧縮形式の相性 が良くないのだったらすべてのLZHファイルがDL出来ないと言う事ですよね。他のものは正常にDL出来ているのを考えると、他の事、例えばファイル内容によって何か変化があるのかというの考えてしまうのですが… >他の圧縮形式で保存して配布するより他ないように思います。 今の所、そのファイルのみZIPで配布しています。 が、やはり1つに統一したいので何とかして解決を望みます。 何か情報がありましたらよろしくお願いします。

  • chikorin7
  • ベストアンサー率25% (25/100)
回答No.2

#1さんの言うように、別のLZHのファイルでやってもだめだったらサーバー関係かもしれませんね。 あとは、リンク元のファイルにも問題があるのかもしれませんが、そのあたりは、文章だけではわからないので…。

master-3rd
質問者

補足

返答ありがとうございます。 質問文にも書き込みしましたが、そのファイルだけがダウンロードできません。 その他の今まで保存(アップ)してあるLZHファイルはダウンロードできますし、デスクトップ上の適当なファイルをLZHファイルで圧縮してアップしてもダウンロードできます。 別のLZHファイルはダウンロード可能です。 また、 >リンク元のファイルにも問題 とありますが、どのようなことが考えられますか? 質問にも書きましたが、ユーザーさんからのバグ報告を受け修正してアップしたところこのような事例が出ました。 もちろんですが、旧バージョンのLZHファイルは削除してしまったため何が悪いのかの判別がつきにくいです。 また、ファイル名ですが、ダウンロード数カウントCGIを使用しています。ファイル名があっていなければユーザーさんはDL出来ません。…今回は、そのソースさえも表示しないはずです。 また、そのCGIを通さず、直接LZHファイルを指定してもソース表示してしまいます。 この状態で何が考えられますか?再度お願いします。

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.1

サーバーがLZH形式を認めなくなったのでは?

master-3rd
質問者

補足

返答ありがとうございます。 質問文にも書き込みしましたが、そのファイルだけがダウンロードできません。 その他の今まで保存(アップ)してあるLZHファイルはダウンロードできますし、デスクトップ上の適当なファイルをLZHファイルで圧縮してアップしてもダウンロードできます。 特定のファイルのみダウンロードが出来ないんです。 他に何か考えられますか?再度お願いします。

関連するQ&A