Cake PHPでファイルのアップロードができないことの解決。

自分で解決したことの忘れないうちのメモ。

Cake PHPのビューで$html->file()のヘルパーを使って、Wavファイルを指定してそのファイルをアップロードしたとき、アクション側でファイル名が$this->dataで渡らないことではまりました。

フォームをシンプルにしてもダメ。WindowsのXAMPPではOKだか、LinuxのApache+PHPだとダメ。WavファイルではないJpegファイルだとOK。ファイル名に空白が入っているのではないかとか、いろいろ試しましたがわからず。半日つぶしました。

結果は、単純。CakePHPには関係ない原因でした。原因はアップロードサイズが大きいこと。ファイルサイズが大きいWavファイルなら当たり前のこと。今までは、ファイルサイズが大きいとエラーを表示したと思っていましたので見逃していました。

.iniに

upload_max_filesize = 100M

post_max_size = 100M

のように大きい値(後で調整しましょう)を設定して、Apacheを再起動したらうまくアップロードできるようになりました。

基本に戻ることが大切。考えていることが間違った方向ではまる典型的なミスでした。