WordPressに画像をアップロードしようとしたのに、なぜかうまくいかない。
「アップロードしたファイルを移動できませんでした」「ファイルサイズが大きすぎます」といったエラーが出て、記事に画像を入れられず困っていませんか。
このトラブルは原因がいくつかありますが、ひとつずつ確認していけば対処できるものがほとんどです。
この記事では、Web制作初心者の方に向けて、WordPressで画像やファイルがアップロードできない原因と解決方法をやさしく解説します。
アップロードできない時にまず確認すること
対処を始める前に、どんなエラーメッセージが表示されているかを確認しましょう。
エラーの文言は、原因を特定するための大きな手がかりになります。
あわせて、アップロードしようとしているファイルの「形式(拡張子)」と「サイズ」も確認しておくと、原因の切り分けがスムーズになります。
原因①:ファイルサイズが上限を超えている
もっとも多いのが、アップロードしようとしたファイルが、サイズの上限を超えているケースです。
WordPressには、一度にアップロードできるファイルサイズの上限が決められています。
この上限は、メディアを追加する画面で「最大アップロードサイズ: ◯◯ MB」のように確認できます。
解決方法は2つあります。ひとつは、画像を圧縮・リサイズしてファイルサイズを小さくする方法です。
もうひとつは、アップロード上限そのものを引き上げる方法で、こちらは記事の後半で詳しく解説します。
原因②:対応していないファイル形式
WordPressがそのファイル形式に対応していない場合も、アップロードできません。
画像であればJPEGやPNG、GIFなど一般的な形式は問題なく使えますが、特殊な形式のファイルは標準では対応していないことがあります。
まずは、よく使われる形式に変換してからアップロードできないか試してみましょう。
なお、対応する形式を増やすにはfunctions.phpを編集する方法もありますが、これは少し上級者向けの対応になります。編集する場合は、必ずバックアップを取ってから慎重に行ってください。
原因③:パーミッション(権限)の問題
「アップロードしたファイルを移動できませんでした」というエラーが出る場合は、フォルダのパーミッション(書き込み権限)が原因であることが多いです。
WordPressは、アップロードした画像をwp-content内のuploadsというフォルダに保存します。
このフォルダに書き込む権限が正しく設定されていないと、ファイルを保存できずエラーになります。
WordPressやサーバーのアップデート後に、いつの間にか権限が変わってこのエラーが起こることもあります。
対処としては、FTPソフトやサーバーのファイルマネージャーでuploadsフォルダのパーミッションを確認・修正します。
ただし、適切なパーミッションの値はサーバーによって異なります。誤った値を設定するとセキュリティ上のリスクになる場合もあるため、契約しているサーバーのマニュアルやサポートで推奨される値を確認してから設定しましょう。
原因④:PHPのメモリ不足
サイズの大きな画像を処理するときなどに、PHPのメモリが不足してアップロードに失敗することがあります。
この場合は、PHPに割り当てられたメモリの上限を引き上げることで解決できる場合があります。
メモリ不足の詳しい原因と対処法については、別の記事で解説しているので、そちらもあわせて参考にしてください。
原因⑤:プラグインの競合・キャッシュ
特定のプラグイン、特にキャッシュ系や画像最適化系のプラグインが、アップロードを妨げていることもあります。
心当たりがある場合は、該当するプラグインを一時的に停止してから、アップロードできるか試してみましょう。
キャッシュ系プラグインを使っている場合は、キャッシュをクリアしてから再度アップロードを試すのも有効です。
アップロード上限の引き上げ方法
原因①のアップロード上限を引き上げたい場合は、サーバー側で設定を変更します。
多くのレンタルサーバーでは、管理画面からPHPの設定を変更できます。関係するのは主に次の3つの値です。
upload_max_filesize:アップロードできる1ファイルの最大サイズpost_max_size:一度に送信できるデータ全体の最大サイズmemory_limit:PHPが使えるメモリの上限
これらは、memory_limitを一番大きく、post_max_sizeを次に、upload_max_filesizeを一番小さくするという大小関係を保つのが基本です。
php.iniを編集できるサーバーでは、次のように記述します。
upload_max_filesize = 64M
post_max_size = 128M
memory_limit = 256MINIサーバーがApacheに対応している場合は、サイトのルートにある.htaccessで設定する方法もあります。
php_value upload_max_filesize 64M
php_value post_max_size 128M
php_value memory_limit 256MApachephp.iniや.htaccessは重要なファイルなので、編集前に必ずバックアップを取り、設定方法はサーバーのマニュアルも確認しながら進めてください。
それでも直らないときは
ここまでの方法を試しても解決しない場合は、無理をせず外部の力を借りましょう。
パーミッションやサーバー設定は、初心者には分かりにくい部分も多いトラブルです。
契約しているレンタルサーバーのサポートに問い合わせると、サーバー側の設定や権限の状況を確認してもらえる場合があります。
自分での解決が難しいと感じたら、WordPressに詳しい専門家に相談するのも安全で確実な選択肢です。
まとめ
WordPressで画像やファイルがアップロードできない原因は、ファイルサイズの超過、対応していないファイル形式、パーミッションの問題、メモリ不足、プラグインの競合など、さまざまです。
まずは表示されているエラーメッセージとファイルの形式・サイズを確認し、当てはまる原因から順に対処していきましょう。
アップロード上限を引き上げる場合は3つの値の大小関係に注意し、パーミッションを変更する場合はサーバー推奨の値を確認することが大切です。
それでも難しい場合は、サーバー会社のサポートや専門家を頼ることも検討してみてください。