WebPatioの拡張版である「Forum Patio v1.54s」で作った掲示板をWindows10で使っていて、ファイルをアップロードしようとしたんだが、こんなエラーが表示されてアップロードが出来なかった。
File_type Error: ret=, i=, fname=, ext= でした。拡張子が 以外のファイルはアップロード出来ません。
これ、調べてみたところ、Windows10上でのファイルの拡張子が一部大文字で認識されていて、そんんでもってWebpatioが拡張子を小文字で判定しているために起きていた。
掲示板のルートディレクトリ/lib/upload.pl というファイルで拡張子の判定を行っている箇所があったので、該当箇所を大文字小文字関係なく判定できるように変更した
[root@infra bbs]# diff lib/upload.pl.20170303 lib/upload.pl
54c54
< if ($fext[-1] eq $ky) { $ex = "." . $ky; last; }
---
> if ($fext[-1] =~ /$ky/i ) { $ex = "." . $ky; last; }
[root@infra bbs]#
「$fext[-1] eq $ky」ってのが完全一致で拡張子を比較していて、アップロードしているファイルの拡張子が大文字の場合には、init.cgiで定義している小文字の拡張子一覧にヒットしないので、その部分を「$fext[-1] =~ /$ky/i」に変更し、大文字小文字の区別をなくした。
以上。
コメント