カテゴリ | |
---|---|
サマリ | IIS 6.0で#refによる画像が表示されない |
バージョン | 1.4.3 |
投稿者 | kano |
状態 | 完了 |
投稿日 | 2004-06-23 (WED) 16:58:01 |
IIS6.0で#refによる画像が表示されません。リンク先(pukiwiki.php?plugin=attach&openfile=test.jpg&refer=...の画像は表示されます。)
IISのログファイルには404が記録されており、どうやら拡張子がないファイルは404として返されるようで、試しにattach内のファイルに.jpgを付けて直接アクセスすると表示されました。
PukiWikiというより、IIS6.0の問題かもしれませんが、#refによる画像表示ができる設定等ございませんでしょうか?
環境は,
表示されないというのは×マークが出るということですか?file not found.なら単純にファイル名の間違いです(特に大文字小文字に注意)。
×マークが出ます。Webページのソースでは、<img src="./attach/74657374_746573742E6A7067" alt="test.jpg"...>となっており、実際にそのファイルも存在しています。
attach プラグインでファイルを作成する際に、拡張子もつけてやればいいのですよね。そして、attach, ref で表示するファイル名もそのファイルになるように変更。ref.inc.php では
$extension = strrchr($name,"."); $file = UPLOAD_DIR.encode($page).'_'.encode($name).$extension;こんなん?あとは attach でも修正いりますけど。 拡張子がないとやっぱりこれからもいろいろ問題がでてくるかもしれないので、 wiki ファイルにも .txt ついてることですし、 公式 attach, ref 自体直してしまうのがよかったりはしませんかね? いや、言ってみただけです。
質問箱/2006は見ました?>kanoさん
続・質問箱/6は見ましたが、パスなどに問題はないようです。やはりkokさんがおっしゃるように、拡張子を付けるようにattach、refを修正する必要があるようです。ちょっとがんばってみます。
とりあえずattachとrefを以下のとおり修正し拡張子を付けるようにしたところ、表示されるようになりました。
$this->basename = UPLOAD_DIR.encode($page).'_'.encode($this->file).strrchr($file,".");
$pattern = "/^({$page_pattern})_((?:[0-9A-F]{2})+)\.[a-zA-Z]+{$age_pattern}$/";
$file = UPLOAD_DIR.encode($page).'_'.encode($name).strrchr($name,".");
かなりいいかげんですので、他にも修正するところがあると思いますが、とりあえずご報告まで。
# 公式で拡張子を付けるようにしていただけるとうれしいです。
"はじめに.読"なんてファイルを添付しても大丈夫ですか?
…。IIS 6.0の標準動作のようです。トラブルシューティングの「静的ファイルの要求に対して404エラーが返される」。
これはつまりIISの設定を変更すれば、PukiWiki側は変更しなくてもいいはずです。とりあえず完了にしておきます。
添付ファイルの実体に拡張子が無い、というのは問題だと思っていますが、拡張子を指定可能にすると別の問題が起こってしまいますので、つけるならば *.bin といった、害がなさそうな拡張子を固定でつける様になると思います。
なぜ拡張子が無いと問題なのですか? 現仕様で良いんじゃないですかね。仮に、Content-type を得るために、拡張子だけで判断するのであれば、その処理は不適切ですから、ただ気持ち悪いとかの整理したいようにしか理解できませんけどね。ということで、何か問題なのでしょうか?
UPLOAD_DIRを直接参照させるのはやめて、openfileで表示させればどうですか?
ref.inc.phpの249行辺りを書きかえるだけです。
$url2 = $url; - $url = $file; + $url = $url; if (is_array($size))
拡張子の追加は、ファイル格納形式の変更という多方面に影響を 与えるものである割に、益少ないもの、あるいは無意味なことのように思えます。