SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【WordPress】このファイルタイプはセキュリティの観点から許可されていません。

問題

WordPressの投稿画面から、*.psd、*.ai や *.obj、*.bat、*.exe などのファイルをアップロードしようとすると、以下のようなエラーメッセージが表示されて、ファイルがアップロードできません。

このファイルタイプはセキュリティの観点から許可されていません。

wordpress-file-upload-error

答え

WordPressのファイルアップロード機能は、登録されているファイルの種類以外は受け付けないようになっている。

以下のような記述を、プラグインとして、もしくはfunctions.phpに書くと、デフォルトではアップロードできない種類のファイルをアップロードできるようになる。

function my_mime_type($a) {
    //本来あるべきMIME Typeなど考えずに適当に書いてもあまり問題ない
    $a['psd'] = 'image/x-photoshop';
    $a['obj'] = 'application/octet-stream';
    $a['bat'] = 'application/bat';
    $a['exe'] = 'application/octet-stream';
    return $a;
}
add_filter('upload_mimes', 'my_mime_type');

wp_ext2type()という関数が使われている箇所がいくつかあり、そのファイルが何者なのかもWordPressに教えておくとよさそうなので、以下の記述も合わせて入れておく。

function my_ext2type($a) {
    //適当に
    array_push($a, array('document' => 'psd'));
    array_push($a, array('document' => 'obj'));
    array_push($a, array('code' => 'bat'));
    array_push($a, array('archive' => 'exe'));
    return $a;
}
add_filter('ext2type', 'my_ext2type');

関連するメモ

コメント