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

WordPressで画像のアップロードができない!エラー原因と解決策まとめ
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

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

どんなエラーなのか?

はじめに、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)」などは対応していません。

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

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

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

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

  • .jpg, .jpeg, .jpe
  • .gif
  • .png
  • .bmp
  • .tiff, .tif
  • .ico

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

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

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

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

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

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

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

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

「画像の後処理に失敗しました」というエラーが表示される場合、画像ファイルのサイズが大きすぎる可能性があります。
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サイトのハッキングからの復旧・不具合の解消はこちら

土井純也

土井 純也 Twitterアイコン Facebookアイコン

WordPressスペシャリスト・エンジニア
株式会社プレートテクノロジー 取締役
1985年北海道生まれ。200社以上のWordPressサイトの制作を担当し、「wp.support」では一部上場企業を含め、様々なサイトのWordPress保守・セキュリティをサポートしている。