【WordPress】メディアの画像アップロードができない原因と対処法

メディアの画像アップロードができない原因と対処法

今回私が当たった問題として、wordpressにおいて画像ファイルがアップロードできないという問題が発生しましたので、今後の為と一つの原因としてわかったことなので情報共有の為に本記事に記し残すことにしました。

今回起こったこと

今回私に起きた問題は、wordpressでいつものように記事を書いていて、いつも通りに画像をアップロードしようとしたら以下のような画面が出てきました。

「アップロードしたファイルをwp-content/uploads/○○に移動できませんでした。」

こんな注意書きが出て来て画像がアップロードできなくなってしまったのです。

わけがわからずもう一度アップロードしたら、今度はなんと違う注意書きが出てきました。

「ディスクのファイルの書き込みに失敗しました。」

おい、さっきと違うじゃないか!と思いましたが、アップロードできていないのは同じ。

やるごとに注意書きの内容が違うのはなぜだかさっぱりわかりませんが、何かのエラーなのでしょう。

わけわからないなりに、いろいろ調べてみました。

問題の原因究明

結論から言ってしまうと、私の場合だとこの「原因究明」の章の一番下に書く「サーバーの容量問題」が原因でした。長くなったので一番下に書いています。

あくまでも私の場合ですので、とりあえず考えられるほかの原因を先に簡単に記しておきます。

HTTPエラー

ここで、前もって除外するエラーを書きます。

HTTPエラーなるものがあるそうです。

ただその場合には「HTTPエラー」という文言が表示されるそうなので、今回はそれには該当しないようです。

ここから謎の注意書きの可能性を見て行きます。

アップロードファイルのサイズ問題

単純に、wordpressにアップする際の、ファイルの限界値を越えているときに起きるエラーです。

ファイルを圧縮するか、リサイズで解決するようです。

しかし、今回も今まで普通にアップロードできていたようなサイズですし、今回これは違うみたいです。というか信じたくないです。

サーバーの接続の問題

サーバーとの接続に障害がある時のエラーです。

これ実は何度かあります。

こういう時の対処法は、いくつかパターンがあります。

・ブラウザを閉じて再び入る。
・ログアウトして、再度ログイン。
・PCを再起動。

しかし残念。

今回はこれではないようです・・・。

キャッシュ系プラグインの問題

キャッシュ系プラグインは、キャッシュを蓄積してサイトの表示速度をはやくするためのものです。

そのキャッシュプラグインに蓄積されたキャッシュを開放(削除)することで、アップロードできるようになるそうです。

多くの調べたサイトで、代表的なキャッシュ系プラグインで言えば「Head Cleaner」というものがあるようです。これが入っているならば、原因はこれにあるのかもしれません。

しかし、私のサイトには、キャッシュ系プラグインは入っていません

違うようです。

サーバーの権限(パーミッション)の問題

サイトのサーバー内部の設定をいじるそうです。

サーバーにログインしてファイル操作で「wp-content/uploads/」を選択して、そこから「アクセス権限」を変更するようです。

正直これは意味不明です。

サーバー側の設定をいじるなんて、初心者の自分には恐ろしくてできません・・・。というか、今までできていたのにいきなり権限なんて変わるものなんでしょうか。ないと思います。

ただこの方法でなおっている方が多いといろんなところで書いてありました。

サーバーの容量問題

結論から言いますと、このサーバーの容量問題でした。

サーバーの容量がもう終わってました。

なぜこんなにも容量を消費しているのか、さっぱりわかりませんでした。なぜなら、まだそんなに記事を投稿してないからです。

今回の根本の原因を探る

さて、なぜまだ投稿数の少ない私がすでに容量オーバーを起こしてしまったのか。

写真は確かに多いけど、wordpress内でちゃんとリサイズしてるしwordpress内で写真の容量確認しても、1つのファイル300KB~50KB程度だし。

たとえ300KBが100枚あったとしても30MB程度にしかならないはず・・・。他のPHPやシステムファイルあわせても、3GBなんていかないはずです。

 

はい、ここです。

「wordpress内でちゃんとリサイズしてるし」

これが根本的に間違っていたのです。

わたくし、これまでカメラで撮った写真をwordpressに入れてからリサイズしていました。

幅4000pxくらい(容量10MB)の写真をwordpressに突っ込み、wordpress内でリサイズして、幅1024px(容量200KB)くらいに表示が変わっていたので、それで縮小できているものと思っていましたが・・・、

しかし、これは容量を節約しているどころか、消費していたのです・・・。

サーバーのファイル管理(FTP)でこの写真ファイルがあるところを見てみると・・・。

「IMG_8880」という同じ画像ファイルだけで、10個もファイルが出来ているという謎の事態になっていたのです。

どういうことだこれは。

 

要はそのまま突っ込んだ幅4000px(10MB)をwordpress内でリサイズしたとしても、元の画像ファイルはそのまま残っており、ここでまず10MB食って、先ほどリサイズした物も新しく別ファイルとして作られていて、更に容量が食われ・・・。

他、なぜか生成される中途半端な画像サイズの同じ画像ファイルも大量につくられている。負のスパイラルができていたということです。

つまりこんな化け物サイズのファイルをそのままwordpressに突っ込んだことが間違っているのです。

wordpressに入れる前に適切なサイズにリサイズしておく。

これが基本だったのです。(当たり前だよって方の方が多いでしょう・・・)

改善のための対処法

長々となりましたが、とりあえず応急の対処としまして、

サーバーファイルにあったアップロード元のサイズの画像「幅4000pxの10MB~6MB」の写真をすべて消していくことにしました。

 

ここで私がやった対処で気を付けたのは、

元画像の幅4000px(10MB~6MB)だけを消す

ということです。

この「元画像」だけは絶対にwordpressの記事内には使われていない自信があるからです。

しかし、他の画像は何か理由があって生成されたのでしょう。ひょっとしたらどこかで使われているのかもしれません。

記事内か、サムネイルか、wordpress内か、プレビューか、どこかで使われている可能性があります。

なので、下手に削除して取り返しのつかないことになったら嫌なので、他の謎の自動生成画像ファイルは消さなかったです。

というわけで、それをすべての写真でやっていきました。

改善結果

超スッキリしました。

もう、wordpressにも画像が軽快に入ります

リサイズしてから入れてるからでもあるでしょう。

まとめ

というわけで今回、私のサイトに画像が入らなくなった原因と対処法を記しました。

画像がアップロードできない原因はいくつかありますが、今回陥った問題としては、サーバーの容量が足りなかったのが原因でした。残りサーバーに対してアップロードしようとする画像サイズが大きすぎたのです。

そしてここで学んだのは…

リサイズしてからアップロードする

ということです。

まずは、サイトに使う画像を決めたら、wordpressに入れる前に、PC内でフリーツールでも何でもいいので、最適なサイズにリサイズする。そこからwordpressに突っ込むのです。

基本でした。


次回、別に画像のサイズと謎の自動生成ファイルに焦点を当てて記事書こうと思います。

今後どうすれば、どのような効果を得られるか。

今後の対策です。

 

ちゃんとリサイズしていれば、謎の自動生成ファイルの数も減らせるということがわかったのでした。

コメント