WordPressでファイルを追加した時に「このファイルタイプをアップロードする権限がありません」と表示されたら、
拡張子だけを変えたり、すべての形式を無条件で許可したりしてはいけません。
このエラーは、ファイル名の末尾、実際のMIMEタイプ、ログイン中ユーザーの権限、
WordPress本体やサーバーの検査結果が一致しない時に起きます。正解は、拒否した場所を順番に特定し、必要な形式だけを許可することです。
20年以上ITエンジニアとして、WordPressの制作・保守・復旧に携わっている、よこやま良平です。現場では、許可設定を広げすぎたために危険なファイルまで置ける状態になった例も見てきました。
- ファイル形式エラーが起きる仕組みを理解できる
- 容量・権限・MIMEタイプのどこで拒否されたか切り分けられる
- 必要な形式だけを安全に追加する方法が分かる
- SVGやCSVを許可する時の危険と対策を判断できる
- 設定後の確認と元へ戻す手順まで実行できる
まずは元ファイルを複製し、エラーが出た時刻、操作したユーザー、拡張子、ファイルサイズを記録してください。
その記録があれば、設定変更を重ねなくても原因へ近づけます。
以下では、初心者でも事故を増やさない順番で確認します。
本番サイトのPHPを編集する前に、読み取り確認と小さな検証から始めましょう。
WordPressの「このファイルタイプをアップロードする権限がありません」が示す状態
結論から言うと、このメッセージは「保存容量が足りない」ではなく、
WordPressがそのファイル形式を安全に扱えると確認できなかった状態を示します。
アップロード処理では、ブラウザから送られたデータをPHPが一時領域へ受け取り、
WordPressがファイル名と内容を調べ、最後に「uploads」配下へ移動します。今回のエラーは主に、形式を調べる段階で発生します。
容量不足や一時フォルダーエラーとは違う
ファイルが大きすぎる場合は「アップロードサイズ上限を超えています」など、
容量に関する別の表示になるのが一般的です。一時領域を使えない場合も、PHP由来の別メッセージが出ます。
ただし、プラグインがエラー文を置き換えることもあるため、表示だけで断定はできません。
同じ小さなPNGは通るか、対象形式だけ失敗するかを比較すると、形式判定の問題かどうかを早く見分けられます。
拡張子・MIMEタイプ・ユーザー権限の三段階で判定される
「photo.webp」の「webp」は拡張子です。一方、MIMEタイプは、
ブラウザやサーバーが内容の種類を「image/webp」のように表すための情報です。WordPressは両方の整合性を確認します。
さらに、ログインしているユーザーがアップロード可能か、マルチサイトか、
その形式が許可一覧へ入っているかも判定されます。管理者では成功し、投稿者では失敗するなら、形式より権限設定を先に疑うべきです。
SVGなどは標準で拒否される理由がある
SVGは画像として表示できますが、中身はXML形式の文書です。
スクリプトや外部参照を含められるため、無害化せずに不特定ユーザーへ許可すると、管理画面を閲覧する人まで危険にさらす可能性があります。
CSV、ZIP、独自拡張子も、内容や利用者によって危険度が変わります。
「仕事で必要だから」という理由だけで全ユーザーへ広げず、誰が、どの画面で、何の目的に使うかを決めてから許可してください。
「dangerous.svg」を「photo.jpg」へ変更しても、ファイルの実体は安全なJPEGになりません。判定をすり抜けさせるのではなく、正しい形式へ変換するか、安全な検証処理を用意してください。
WordPressでファイル形式エラーが出た時の安全な切り分け
最初に行うべきことは、設定追加ではなく再現条件の整理です。
一つずつ条件を変えれば、ファイルそのもの、ユーザー、WordPress、サーバーのどこに原因があるか分かります。

手順1:元ファイルと拡張子を確認する
まず元ファイルを別の安全な場所へコピーし、ファイル名、拡張子、サイズを記録します。
OSで拡張子が非表示なら表示を有効にし、「image.jpg.svg」のような二重拡張子になっていないか確認してください。
画像は信頼できる編集ソフトで開き、必要ならPNGやJPEGとして書き出し直します。
メールやチャットから保存したファイルは、送信側の変換で拡張子と内容がずれることがあるためです。
- 同じ形式の別ファイルでも失敗するか
- 小さいPNGまたはJPEGは成功するか
- 管理者と投稿者で結果が変わるか
- 別ブラウザでも同じメッセージになるか
手順2:管理者と他ユーザーで挙動を比較する
管理者で成功し、編集者や投稿者で失敗する場合は、
ユーザー権限、会員サイト用プラグイン、投稿フォームの制限を確認します。全体のMIME設定を広げても、役割側で拒否されれば直りません。
反対に、管理者でも同じ形式だけ失敗するなら、WordPressの許可一覧、
実体MIMEの検証、セキュリティプラグイン、WAFの順に調べます。比較に使うアカウントへ一時的に管理者権限を付ける方法は避けてください。
手順3:サイトヘルス・ブラウザ・サーバーログを確認する
「ツール」から「サイトヘルス」を開き、PHPバージョン、
ファイルアップロード関連の値、REST APIの状態を確認します。ブラウザの開発者ツールでは、アップロード要求のHTTPステータスも手掛かりになります。
403ならWAFや権限、413ならサイズ制限、500ならPHPエラーの可能性があります。
ただしメディア画面に同じ文言が表示されても、裏側のレスポンスは異なることがあるため、時刻を合わせてログを確認するのが重要です。
手順4:WordPress本体・テーマ・プラグイン競合を切り分ける
直前に更新したプラグインや、アップロード制限・セキュリティ・会員権限を扱う機能を確認します。
本番で無効化を繰り返さず、ステージング環境で一つずつ停止し、同じ検証ファイルで結果を比べてください。
WordPress本体が古い場合、現在は標準対応している画像形式でも拒否されることがあります。
一方、更新直後から失敗したなら、独自コードが新しい検証仕様へ対応していない可能性があります。変更前後の差分を残すと判断しやすくなります。
許可一覧と実際の判定結果を読み取り確認する
コードを追加する前に、現在のWordPressが何を許可しているかを確認すると、
不要な変更を避けられます。WP-CLIを安全に使える環境なら、次の読み取りコマンドで現在の一覧を取得できます。
wp eval 'foreach ( get_allowed_mime_types() as $ext => $mime ) { echo $ext . " : " . $mime . PHP_EOL; }'対象拡張子が一覧にあっても失敗するなら、追加登録ではなく実体検査や別の制限が原因です。
一覧になければ、誰に許可するかを決めたうえで限定追加を検討します。コマンド実行権限がない場合は、無理にSSHへ接続せずサーバー管理者へ確認してください。
ブラウザが送るMIMEタイプと、サーバーがファイル内容から判定するMIMEタイプが異なることもあります。
一方だけを正しいと決めつけず、検証用ファイルを正規ソフトで作り直し、同じ拡張子の正常ファイルと比較することが重要です。
- WordPressの許可一覧へ対象拡張子が存在するか
- 独自コードやプラグインが一覧を書き換えているか
- 追加設定が必要か、別の検査へ進むべきか
WordPressで必要なMIMEタイプだけを許可する方法
独自形式が本当に必要なら、許可する拡張子とMIMEタイプを一対一で限定するのが正解です。
WordPressのフィルターフックを使い、子テーマよりも用途専用の小さなプラグインへまとめると、テーマ変更後も管理しやすくなります。

子テーマまたは専用プラグインでupload_mimesを使う
たとえばCSVを管理者の業務で使うなら、次のように許可一覧へ追加します。
実際に必要なMIMEタイプは、利用するシステムとファイル生成元を確認して決めてください。
<?php
/**
* Plugin Name: Site Upload MIME Rules
*/
add_filter( 'upload_mimes', function ( $mimes, $user ) {
if ( ! current_user_can( 'manage_options' ) ) {
return $mimes;
}
$mimes['csv'] = 'text/csv';
return $mimes;
}, 10, 2 );この例は管理者だけへCSVを追加し、既存の許可一覧は保ったまま返しています。
コードを「functions.php」へ直接書く場合は、テーマ更新で消えること、記述ミスでサイトが停止することを理解したうえで、必ず戻せる手段を用意してください。
CSVは「text/csv」以外として判定される環境もあります。値を推測して複数追加するのではなく、検証用ファイルの実体とサーバーの判定を確認してください。
本体が実体MIMEを拒否する場合だけ検証フィルターを追加する
許可一覧へ追加しても失敗する場合、WordPressが拡張子と実体MIMEの不一致を検出している可能性があります。
この検証を丸ごと止めるのではなく、対象拡張子だけを確認し、期待する形式と一致した時だけ結果を補正します。
「wp_check_filetype_and_ext」フィルターは強力ですが、実装を誤ると危険なファイルを通します。
単に拡張子を見て許可するコードは避け、ファイル内容の検査、権限確認、対象画面の限定を組み合わせる必要があります。
インターネット上のコードをそのまま貼り、すべてのファイルへ「type」と「ext」を返す実装は危険です。対象形式・権限・検査方法を説明できないコードは本番へ入れないでください。
SVGは無害化・権限制限・表示検証をセットにする
SVGを使う場合は、MIMEタイプ追加だけでは不十分です。
アップロード前後に危険な要素を除去するサニタイズ処理、管理者など必要な役割への限定、ブラウザでの安全な表示確認をセットにします。
信頼できるSVG専用プラグインを使う場合も、更新履歴、対応するWordPress版、
無害化機能の有無、誰にアップロードを許可するかを確認してください。外部から投稿できるフォームへSVGを無条件で開放するのは避けるべきです。
ALLOW_UNFILTERED_UPLOADSの常用を避ける
「wp-config.php」へ「ALLOW_UNFILTERED_UPLOADS」を追加する方法は、
ファイル形式の制限を大きく緩めます。原因調査を飛ばして常用すると、必要のない危険まで抱えることになります。
一時的な検証で使用したとしても、対象、期間、実行者、戻す時刻を記録し、
検証後は削除してください。通常運用では「upload_mimes」で必要な形式だけを追加し、さらに役割を限定する方が安全です。
WordPressのファイル形式エラーを原因別に直す
同じエラーメッセージでも、原因によって直し方は変わります。
ここではよくある四つのケースを分け、変更すべき場所と、変更してはいけない場所を整理します。
JPEG・PNG・WebPが急に拒否される
標準的な画像まで急に拒否されるなら、まずファイル破損と偽装拡張子を確認します。
画像編集ソフトで開いて新規書き出しを行い、別の正常な画像と比較してください。カメラや変換ツール独自の情報が判定へ影響する場合もあります。
次にWordPressとPHPのバージョン、画像処理ライブラリ、セキュリティ機能を確認します。
アップロードは成功したが表示されない場合は別問題なので、URL、添付ファイル情報、生成された画像サイズを調べます。
PDF・CSV・ZIPが拒否される
PDFやZIPは環境によって標準許可の扱いが異なり、セキュリティ製品が内容を検査することもあります。
パスワード付きZIP、巨大なCSV、実行ファイルを含む圧縮ファイルは、WordPressより前にサーバー側で拒否される場合があります。
業務データを置くなら、メディアライブラリが適切な保管場所かも見直してください。
公開URLから取得できる状態では困る機密ファイルは、認証付きストレージや会員専用配信など、アクセス制御を前提にした方法が必要です。
ファイル名変更だけでは直らない
拡張子を変えるだけでは、内容の変換にも安全化にもなりません。
WordPressが実体MIMEを確認すれば不一致で止まり、確認が甘い環境で通れば、危険な内容を誤った形式で公開する結果になります。
画像なら編集ソフトから目的の形式で再保存し、文書なら提供元の正規機能で書き出します。
変換後は元ファイルと別名で保存し、必要な情報や画質が失われていないかを開いて確認してください。
WAF・セキュリティ製品・サーバー側制限を確認する
管理画面では形式エラーに見えても、実際はWAFがリクエスト内容を遮断していることがあります。
失敗時刻と送信元IPを控え、サーバー管理画面のWAFログ、Webサーバーログ、PHPログを照合します。
ルールを停止して試す前に、どの検知項目が反応したかを確認してください。
サイト全体のWAFを無効にするのではなく、必要なら管理画面の該当操作へ限定した除外が可能か、サーバー会社へ相談するのが安全です。
- 発生日時とタイムゾーン
- 対象URLと操作した画面
- ファイルの拡張子・MIMEタイプ・サイズ
- HTTPステータスと表示されたメッセージ
- 正常な形式では成功したという比較結果
マルチサイトではネットワーク設定も確認する
WordPressマルチサイトでは、通常サイトと違い、ネットワーク管理画面の
「アップロードファイルの種類」が許可判定へ影響します。個別サイトのコードだけを直しても、ネットワーク側で許可されていなければ失敗します。
ネットワーク全体へ追加すると、参加サイトすべてへ影響する可能性があります。
一つのサイトで必要な形式を全体へ開放せず、運用範囲、利用者、既存プラグインとの関係を確認し、最小の適用範囲を選んでください。
WordPressで許可設定を変更した後の検証と戻し方
設定を入れてアップロードが一度成功しても、それだけでは完了ではありません。
権限の狭さ、安全な保存、表示、削除、再発しないことまで確認し、不要な許可を残さない状態にします。
ステージングとバックアップを先に用意する
PHPコードやプラグイン設定を変更する前に、ファイルとデータベースを保存します。
復元方法も確認し、管理画面が開かなくなった時にFTPやサーバー管理画面から戻せるようにしてください。
ステージングでは、本番と同じWordPress・PHP・プラグイン構成に近づけます。
ただしWAFやファイル権限が本番と異なることもあるため、ステージングで成功した後も、本番では小さな無害ファイルだけで最終確認します。
小さい検証ファイルで投稿・表示・削除まで確認する
個人情報や業務データを含まない小さなファイルを用意し、管理者で一件だけ追加します。
メディア詳細でファイル名、URL、種類を確認し、記事へ挿入した時に意図した表示になるかも見てください。
次に、許可していない役割では拒否されること、別の危険な拡張子は通らないことを確認します。
成功条件だけでなく拒否条件も試すことで、設定が広がりすぎていないと判断できます。
ログと設定差分を残し不要な許可を戻す
変更したファイル、コード、プラグイン、作業日時、確認結果を記録します。
テスト用コード、デバッグ表示、一時的なWAF除外、使わなかったMIMEタイプは、その日のうちに元へ戻してください。
数日後にも同じ形式を追加し、再現性を確認すると安心です。
担当者が変わっても判断できるよう、「何でも許可した」のではなく、「この業務に必要な形式だけを、この役割へ許可した」と説明できる状態を残します。
- 必要な形式だけが許可されている
- 許可するユーザー役割が限定されている
- アップロード後の表示とダウンロードを確認した
- 許可していない危険な形式は拒否された
- 一時設定を戻し、変更内容と復元方法を記録した
失敗時に設定を戻す具体的な順番
変更後に500エラーや管理画面停止が起きたら、追加操作を重ねず、最後に変更した一か所から戻します。
専用プラグインならフォルダー名を変更して停止し、子テーマなら変更前ファイルへ戻し、キャッシュを削除して再確認します。
次に、PHPエラーログとサーバーログで停止時刻の記録を確認します。
エラーを隠すためにログ機能まで無効にせず、画面へのデバッグ表示だけを止め、原因となったファイル名と行番号を保存してください。
サイトが戻ったら、正常なPNGの追加、既存画像の表示、投稿編集、フロント画面を確認します。
形式エラーだけが直っても、別の投稿処理や画像生成が壊れていれば復旧完了ではありません。
エラー状態のまま別のコードを追加すると、どの変更が効いたか分からなくなります。まず変更前へ戻して正常を確認し、その後に対象形式と権限を限定した方法へ作り直してください。
WordPressのファイル形式エラーに関するよくある質問
必要なMIMEタイプが許可一覧にないことが原因なら直る可能性があります。ただし、実体MIMEの不一致、ユーザー権限、WAFが原因なら追記だけでは直りません。子テーマまたは専用プラグインを使い、バックアップ後に限定的な設定を入れてください。
MIMEタイプを追加しただけでは安全とは言えません。SVGはスクリプトなどを含められるため、無害化処理、信頼できる利用者への権限制限、表示確認が必要です。外部投稿フォームへ無条件で許可しないでください。
できます。「upload_mimes」フィルター内で「current_user_can」を使い、必要な権限を持つユーザーだけへ追加します。管理者という名称だけでなく、実際に必要な権限と業務範囲で判断してください。
古いWordPress、拡張子と実体の不一致、壊れた画像、セキュリティ機能、サーバーの画像処理環境などが考えられます。正常な小さいWebPと比較し、WordPress・PHP・画像ライブラリの順に確認してください。
WordPressのファイル形式エラーを安全に直す確認まとめ
「このファイルタイプをアップロードする権限がありません」は、
許可されていない形式、実体MIMEの不一致、ユーザー権限、プラグインやWAFの制限を知らせるエラーです。
元ファイルを保全し、正常な小さい画像との比較、ユーザー役割の比較、
HTTPレスポンスとログの確認、ステージングでの競合確認という順番なら、原因を増やさずに切り分けられます。
追加設定が必要な時は、「upload_mimes」で対象を限定し、
実体検査と権限制限を保ってください。SVGは無害化も必要です。すべてを無条件で許可する設定は、解決ではなく新しい危険を作ります。
よこやま良平が復旧現場で重視しているのは、エラーを消すことだけではありません。
必要な業務が動き、不要な形式は止まり、設定の理由と戻し方を説明できる状態まで確認して、初めて安全な復旧といえます。
WordPressのアップロードエラーが自分で直せない時は

ワードプレスのWordPressエラートラブル解決をしたいなら
クイックレスキューが解決します。
・WordPressが真っ白画面
・WordPressがログインできない
・ホームページのマルウェアや乗っ取り
・サイトの表示くずれ
・エラーが表示されている
これらでお悩みなら最短30分ですぐに解決します!
いまなら期間限定で
・万一改善されない場合は全額返金保証で安心!
・30日間動作保証で安心!
・初期費・調査料 0円で安心!







