基礎知識 2023.09.20

WordPressで画像のアップロードができない!エラー原因と解決策まとめ

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社e2e 取締役 / CTO

1985年北海道生まれ。
200社以上の大手上場企業のWordPressサイトの制作、保守・セキュリティをサポートしている。

【 展開しているサービス一覧 】
■WordPress開発サービス「wp.make
■WordPress保守/運用サービス「wp.support
■WordPressハッキング/緊急復旧対応サービス「wp.rescue
■WordPressバージョンアップ代行サービス「wp.versionup

WordPressで画像をアップロードする機会は多いですがエラーが表示されてしまい、アップロードができないことはないでしょうか。
この記事では、代表的な5つのエラー原因とその解決方法を紹介しますので、お困りの方はぜひ参考に対応してみてくださいね。

原因がわからず、一刻も早くトラブルを解消したいという場合は、WordPressのプロへ相談することも検討してみると良いでしょう。
最短即日でサイト復旧!WordPressのプロへの相談はこちら

どんなエラーなのか?

はじめに、WordPressで画像がアップロードできない場合はエラー内容を確認しましょう。WordPressのバージョンによっては「HTTPエラー」とひとくくりに表示されることがありますが、ここ最近のバージョンではエラー内容が表示される場合がほとんどです。

さまざまな原因が考えられますが、表示されるエラーの内容から大まかに次の5つに該当することが多いでしょう。

  • 接続が切れている
  • 画像の拡張子が対応していない
  • 画像ファイルが大きすぎる
  • PHPのメモリ上限に達している
  • PHPの実行時間上限に達している

それぞれの原因と解決方法について、詳しく見ていきましょう。

接続が切れている

接続が切れている

一見するとエラーの内容から原因が特定しづらいと思われますが、主にWordPressとのセッション(接続)が切れた際に表示されるエラーです。
ブラウザの複数のタブでWordPressを開いていて、一つのタブでログアウトしたあとに別のタブで画像をアップロードしようとするとこのエラーが表示されます。ほかにも、WordPressで一定期間操作を行わないと自動的にセッションが切断されるため、その場合も同様です。
まれに一時的にWordPressとのセッションが切断された状態でも発生するため、次に紹介する2つの解決策で解決できるでしょう。

解決策①:リロードする

WordPressを開いているタブで、ブラウザの更新ボタンをクリックします。
一時的にセッションが切断されていた場合、WordPressの画面をリロードすることでセッショが再接続され、画像ファイルをアップロードできるようになります。

解決策②:再度ログインする

WordPressとのセッションが完全に切断され、ログアウト状態になってしまったら、再度ログインすることで解決できます。
この場合、WordPressの機能として自動的にログイン画面が表示されるため、そのままログインしましょう。

再度ログインする

画像の拡張子が対応していない

画像の拡張子が対応していない

WordPressにはアップロードできる画像ファイルの拡張子が定められています。拡張子とは、たとえば「ファイル名.jpg」の「.jpg」に該当する部分であり、ファイルの種別を表す文字列です。
私たちが普段よく利用するJPEG(.jpg)形式や、PNG(.png)形式などは対応していますが、Googleが開発した新しい画像フォーマットの「WebP(.webp)」などは対応していません。

※2023/9/20追記
「WebP(.webp)」も、WordPress5.8以降から標準で対応するようになりました。

WordPressをインストールした「wp-includes/functions.php」にアップロード可能なファイルの拡張子リストが記載されていますが、こちらのエラーが出る場合はファイルの拡張子が対応していないからです。

解決策①:画像形式を変換する

最も簡単な対応策としては、WordPressが対応している画像形式に変換することです。

WordPressが対応している画像形式(拡張子)

  • .jpg, .jpeg
  • .gif
  • .png
  • .webp
  • .bmp

画像形式を変換する場合は、単純にファイル名の拡張子を書き換えるだけでは対応できません。Windowsの「ペイント」で対応形式に保存し直したり、拡張子を変換するWebサービスを利用したりしましょう。

解決策②:プラグインで対応させる

もう一つの解決策としては、WordPressに対象の画像形式を対応させることです。その場合、テーマ内の「functions.php」ファイルを修正することになりますが、プラグインでも対応できます。

WP Add Mime Typesは、WordPressにMIMEタイプやファイル拡張子を追加するプラグインです。このプラグインを導入し、対象の画像形式のMIMEタイプとファイル拡張子を記載することで対応できます。

MIMEタイプは「メディアタイプ」とも呼ばれ、インターネット上で送受信されるコンテンツの形式を表す情報です。たとえば、JPEG形式のMIMEタイプは「image/jpeg」であり、コンテンツの形式ごとに内容は異なります。

プラグインを使って対象画像形式をWordPressで取り扱うことができますが、ある程度の知識が必要になるため、JPEGやPNGなどの画像形式に変換することをおすすめします。

なお、ファビコンなどで使用する「.ico」形式のファイルなどは、こちらを使用すればアップロード出来るようになります。

画像ファイルが大きすぎる

画像ファイルが大きすぎる

「画像の後処理に失敗しました」というエラーが表示される場合、画像ファイルのサイズが大きすぎる可能性があります。
WordPressのデフォルト設定では、アップロードできるファイルサイズの上限は30MBです。もし、ファイルサイズが30MBを超えている場合、このようなエラーが表示されます。

解決策①:ファイルを圧縮する

画像ファイルは圧縮することでファイルサイズを小さくすることが可能です。JPEG形式やPNG形式であればある程度圧縮されている状態ですが、BMP形式などは圧縮されていないため、ファイルサイズが大きくなってしまいます。

また、JPEG形式などであっても画像の表示サイズが大きすぎる場合は、圧縮していてもファイルサイズが大きくなってしまうことも。たとえば、スマホやデジカメで撮影した画像の表示サイズは大きめに設定されており、縦横3,000ピクセル以上の場合があります。

Webサイトで利用する画像は、1,280×1,024ピクセル以下の表示サイズで十分ですので、ファイルの表示サイズを小さくすることも検討しましょう。Windowsのペイントでも縮小することができます。

さらに、最近ではJPEG形式やPNG形式のファイルサイズを小さくするWebサービスも存在していますので、あわせて利用するとよいでしょう。

JPEG形式の画像ファイルを圧縮するWebサービスの例:compressjpeg

解決策②:php.iniを編集してアップロード上限を上げる

次の解決策としては、WordPressにアップロードできるファイルサイズの上限を引き上げることが挙げられます。ファイルサイズの上限を引き上げることで、50MB・100MBといったファイルもアップロードできるようになります。

php.iniファイルの「post_max_size」と「upload_max_filesize」の値を修正しましょう。
ただし、WordPressからは直接修正することはできず、WordPressをインストールしたサーバーからファイルを直接修正しなければなりません。さらに、誤った設定を行うとPHPが正常に稼働できなくなる可能性もあります。

エックスサーバーなどのレンタルサーバーをお使いの場合は管理画面から行えますが、素直に画像ファイルを圧縮した方が簡単ですので、こちらの対策方法はあまりおすすめしません。

アップロード上限を上げる

PHPの実行時間上限・メモリ上限に達している

PHPの実行時間上限・メモリ上限に達している

アップロードする画像のファイルサイズがアップロード上限未満であるにもかかわらず、同様のエラーが出力されることがあります。
この場合に考えられる原因は、PHPの実行時間上限・メモリ上限に達してしまっていることです。WordPressはPHPを利用して動作しているため、PHP上の設定上限に達してしまうとエラーが出力される可能性があります。

ファイルサイズと画像の表示サイズを縮小することで解決できる場合がほとんどですが、それでも解決できない場合は、次の対策方法を試してみてください。

解決策:php.iniを編集してメモリ上限・実行時間上限を上げる

ファイルのアップロード上限を修正する場合と同じく、php.iniファイルを直接編集して上限値を変更する方法です。
特に実行時間上限に達することでエラーが出力される可能性があります。PHPの実行時間上限を変更するには「max_execution_time」の値を変更しましょう。デフォルト設定では30秒に設定されていますが、60秒に変更することで事象が解決する可能性があります。

例として、エックスサーバーでの対象項目の画面は次のとおりです。こちらの設定を30→60に変更することで、スクリプトの実行時間上限を変更できます。

実行時間上限を上げる

それでも解決しない場合は、PHPのメモリ上限に達している可能性が考えられます。サーバー上でPHPが動作していますが、プロセスが正常終了するために必要なメモリ量が足りておらず、エラーを出力している可能性が考えられるのです。

php.iniでメモリ上限値を変更するためには「memory_limit」を修正します。
ご利用中のサーバーなどによって設定値の状態は異なりますが、エックスサーバーでは200MBがデフォルト値です。memory_limitの値をご利用中のサーバーにあわせて増やしましょう。

メモリ上限を上げる

画像のアップロードでエラーが出る場合、PHPのメモリ上限が原因である場合は稀なケースですが、解決方法の一つとして覚えておくとよいでしょう。

まとめ

WordPressで画像のアップロードができない場合、考えられる主な原因は次の5つです。

  • 接続が切れている
  • 画像の拡張子が対応していない
  • 画像ファイルが大きすぎる
  • PHPのメモリ上限に達している
  • PHPの実行時間上限に達している

さまざまな原因が考えられますが、落ち着いて対処すれば解決できます。今回紹介した原因に応じた対処方法を一つずつ行い、エラーに対応しましょう。
もし、この記事の内容を見ても解決ができない、という方はWordPressのトラブル・ハッキング被害復旧のプロにお問い合わせください。

WordPressサイトのトラブル・ハッキングからの復旧をプロに無料相談する

WordPressサイトのトラブル復旧なら「wp.rescue」にお任せ!

WordPressサイトで急なトラブルにあったら、「wp.rescue」にご相談ください!

  • 急にサイトに何も表示されなくなった…
  • ログインできなくなった…
  • 覚えのない不審なページがインデックスされている…
  • 不審なユーザーが追加されている…
  • リンクが不審なサイトに飛ぶように書き換えられている…
  • バージョンアップしたらサイトが崩れてしまった…

「wp.rescue」は、WordPressのプロフェッショナル集団によるWordPressトラブル・ハッキング復旧サービスです。
WordPressサイト運営していて、急なトラブルに遭うことは珍しくありません。

原因や解決法方がわかる場合は問題ありませんが、原因がわからなかったり、ハッキングの可能性がある場合はプロに相談するのが一番です。
wp.rescueでは、様々なサイトのトラブルやハッキング被害を解決してきた経験・ノウハウがあるため、速やかなサイトの復旧が可能です。

トラブル復旧はスピードも重要。wp.rescueなら最短即日での復旧も可能ですので、お困りの場合はまずはお問い合わせフォームから無料相談をしてください。

>> wp.rescueに無料相談する

「あれ? 何かおかしい…」と思ったら、WordPressハッキング・緊急対応サービス『wp.rescue』

wp.rescue

特に心当たりもないのに、
・WordPressにログインできない…
・検索結果の表示がおかしい…
・勝手にリダイレクトされてしまう…


など、「何か変だ」と感じたら、
実はWordPressがハッキングされている可能性もあります。

被害が拡大・深刻化する前に、『wp.rescue』にご相談ください!

WordPressのプロフェッショナルがあなたのサイトの問題を迅速解決!