XOOPSのフォーラムでファイル添付が必要な場合、newbb_fileupを使うことがあります。
newbb_fileup:bluemooninc
CentOS5、XOOPS Cube Legacyでこれを使用すると、添付ファイルの名称が消えてしまうことがあります。

ここでアップしているのは「日本語.doc」というファイルです。
「01.doc」「abc.doc」「091116会議.doc」等は、正常に表示されます。
このままでも 、正常にダウンロードはできます。
ただしファイル名は「doc.doc」となってしまいます。
調べてみると、/modules/newbb/post.phpで最初にファイル名を取得した時点で消えています。
これは「php.iniのmbstring設定に追加設定が必要か?」「UTF-8にうまく渡せていないのか?」等々考えましたが、他のPHPプログラムはすべてうまく動いています。
「php5 日本語ファイル名」 でググってみたところ、
http://blogs.liquidst.jp/content/drupal6-php5で日本語名のファイルがコンテンツに添付できない問題/
というページが見つかりました。
php5のbasename関数にバグがあり、これはphp6まで放置されるとのこと。
post.php内でファイル名取得時にこれが使われています。
そこで上記ページを参考に対処。
$file->filename = file_munge_filename(trim(basename($_FILES['files']['name'][$source]), ‘.’), $extensions);
↓
$file->filename = file_munge_filename(trim(end(mb_split(“/”,$_FILES['files']['name'][$source])), ‘.’), $extensions);
basename関数を他の関数の組み合わせで置き換えました。
これで無事に日本語名のファイルをアップできるようになりました。

newbb_fileupがバージョンアップして当該箇所の記述が変更になっていたので、修正します。
post.phphの337行目あたり。
$upfile_name = end(mb_split(“/”,$_FILES['upfile']['name'])); //basename bug
// $upfile_name = basename($_FILES['upfile']['name']); //Local File Name ( Use basename for security )

