CakePHP2.x 画像アップロードフォームの実装まとめ

CakePHP2.x 画像アップロードフォームを実装したのでまとめておきます。

ユーザマイページにユーザアイコンを登録する良くある箇所の例です。

環境 PHP7.0 CakePHP2.10.2

スポンサーリンク

コントローラー UsersController.php

コメント以外でちょっと補足です。

DBはusersテーブルとusers_iconsテーブルがあります。

画像はカラム user_icon MEDIUMBLOB, に保存しました。

上記のマイページはログイン状態でないと入れません。

ispostチェックのところまでが初期表示用で、以降が画像保存ボタンを押した時の処理です。

ビュー index.ctp

補足です。

  • ファイルを選択ボタン
  • 保存するボタン
  • 削除するボタン

のボタンがあります。

ファイルを選択ボタンをdisplay:none;にしてある理由はデフォルトボタンだと、ブラウザ依存で勝手に「ファイルを選択していません」とかの文字が入って枠外に飛び出てしまいました。

しかもブラウザによって文言が違うのでこれを非表示にしたかったのです。そしてラベルだけでボタンの装飾を実装しました。

CSS ボタン装飾

補足です。

ビュー側の補足に書いたようにラベルをボタン風にする必要がありました。

あとは普通の「保存」「削除」ボタンの装飾です。

ユーザデフォルトアイコンについて

こっちに書きました。

CakePHP2.x ユーザが登録したアイコンを表示してなければデフォルトアイコンを表示したい
CakePHP2.x ユーザが登録したアイコンを表示してなければデフォルトアイコンを表示したく、やってみて上手くいった方法を記録しておきます...

ファイル保存・DB保存について

CakePHP2.x系で画像のアップロードフォーム
CakePHP2.x系で画像のアップロードフォームを作りたかったので調べたところ、アップロードの先の格納方法が2通りある事に気づき、両方やっ...