Drupalで記事を投稿するときに、画像などのファイルをアップロードすることって多いと思います。
日本語などのマルチバイト文字でファイル名をつけていると、アップロードしたときに「Invalid filename」というエラーが出てファイルを受け付けてくれないときがあります。
そんなときは、単純に半角英数字のファイル名にリネームしてからアップロードすればいいのですが、ファイル数が多いと面倒ですよね。
でもご安心ください。マルチバイトのファイル名問題を一発で解決してくれる便利なモジュールがあるんです。その名もTransliterationです。
Transliterationのインストール
1. Transliterationモジュールをダウンロードします。
2. ダウンロードしたファイルを解凍して、/sites/all/modulesにアップロードします。
3. [モジュール] ページ(/admin/modules)へ移動して、「Transliteration」を有効化します。
Transliterationの対応バージョン
Transliterationは、Drupal7/6/5に対応しています。
Transliterationの設定
Transliterationの設定は何も必要ありません。モジュールを有効化すれば、勝手にアップロードしたファイル名をリネームしてくれます。
もともと半角英数字のファイル名はそのままで、マルチバイトのファイル名だけリネームします。
例えば、「日本語.jpg」というファイルをアップロードすると、「ri_ben_yu_.jpg」というファイル名に変更されます。変換されたファイル名を見る限り、おそらく漢字なので中国語と判断されてるんでしょうね。
このようにマルチバイト文字を自動でリネームしてくれるので、ファイル名を意識することなく画像などをアップロードできるようになります。
あとがき
私もDrupal使い始めの頃は、マルチバイトの問題には悩まされました。どうにかして日本語のファイル名でも正常にアップロードできないか、試行錯誤して色々やっていましたが、最初からモジュールを探せばよかったですね。
マルチバイト文字のファイルに悩まされている方はぜひお試しください。