個人でWebサービス作る人の雑記ブログ

Webサイトを個人で作ってる人が人の役に立ちそうなことを書いていく雑記ブログです

【CakePHP】Updateプラグイン(UploadBehavior)でUnable to move the uploaded file to xxxのエラー発生・解決

本当に不定期更新。気が向いたら書く。そんなモチベでやっております当ブログ。

久々に誰かに需要があるかもしれないネタができたので備忘録に書いておきます。

ネタ内容はタイトルの通り。今回のネタに需要がある方は

  • CakePHPで開発していてUploadプラグインを使ってる
  • ファイルをうpするとUnable to move the uploaded file to xxxエラーが吐かれる

いやあもうコレ、必ず発生するわけではなく、拡張子だのプラグインの中身を弄った影響だのいろいろな要因が考えられて、かれこれ再現条件を絞り込む3時間くらいハマったのでワタシみたいな思いをしなくてもよいように書き留めておきます。

 

では単刀直入に解決方法を。

 

アプリケーションで使ってるphp.iniファイルの設定が原因です。

 

さて、以下の項目をCtrl+Fで探してみてください。

  • memory_limit (メモリ使用量の上限)
  • post_max_size (POSTデータの最大サイズ ※1回のアップロードファイルすべての合計サイズ)
  • upload_max_filesize  (1ファイルあたりの最大アップロードサイズ)

これらの設定は、PHPアプリケーションがファイルアップロード時に許容するPOST時のファイルデータサイズの設定値です。

 

さて、エラーが吐かれるファイルのデータサイズと、php.iniのこれらの設定値を見比べてみましょう。

きっと、データサイズが設定値よりも上回ってしまっていることでしょう。

ということで、これらの設定値を2Mとかから20Mくらいに変えて、再度アプリケーションを立ち上げ直して試してみてください。きっと解消されるはずです。

 

さて、今回沼にハマった要因は多々ありましたが、個人的に結構な罠だと思っているのは、

Uploadプラグイン自体も設定でmaxSizeを指定できること

です。

あくまでphp.iniの上に乗っかってるアプリのお話なので、気を付けていきたいものです。。