質問: ### 前提・実現したいこと CentOS7にビルドしたWordpressへ特定の記号が入った日本語名のファイルをアップロードしたいです。 プラグインはWP Multibyte Patchを導入しています。 ### 発生している問題・エラーメッセージ (, ), +, -, =, [, ]などの記号が入ったファイル名をアップロードすると、記号が消えてしまう 例:『()+-=[]【カナ】テスト.xlsx』というファイルをアップロードすると、『【カナ】テスト.xlsx』というファイル名になってしまう。 ### 試したこと 1./wordpress/cms/wp-content/plugins/wp-multibyte-patch/wpmp-config-sample-ja.phpをwp-contentにコピーする 2.wp-contentにコピーしたwpmp-config-sample-ja.phpをwpmp-config.phpに変更する 3.wpmp-config.phpの$wpmp_conf['patch_sanitize_file_name']=trueのtrueをfalseに変更する ### 補足情報(FW/ツールのバージョンなど) CentOS 7.7.1908 Apache 2.4.6 PHP 7.3.15 MySQL 8.0.19 WordPress 5.4 ========以下Wordpressのプラグイン======== WP Multibyte Patch 2.8.4 Admin Menu Editor Pro 2.11 Advanced Custom Fields PRO 5.8.12 Custom Post Type Permalinks 3.3.5 EWWW Image Optimizer 5.4.1 Ghost Kit 2.11.0 Post Expirator 2.4.0.1 Radio Buttons for Taxonomies 2.0.5 Regenerate Thumbnails 3.1.3 Remove Category URL 1.1.6 TablePress 1.11 TinyMCE Advanced 5.4.0 WP Mail SMTP 2.0.1 WP-Members 3.3.2.2 マーカーアニメーション 4.0.1
回答: おそらくファイルをアップロードする際にsanitize_file_name関数を経由していると思われます。 この関数で有害な記号が取り除かれる形になります。 この記事も参考になるかもしれません。 ただ記号によってはurlencodeしないとファイルがダウンロードできない可能性があるので注意してください。