cakePHPでファイルアップロード

2007/07/20 | cakePHP

cakePHPでのCMSネタの続きだが、CMSツールの一つとして、ブラウザからサーバ上のファイル管理(画像とか)機能が必要になる。「ブラウザからファイルをアップロードできて、登録内容を一覧で表示できて、削除とかも出来る」という機能が必要になるわけだが、調べてみてcakePHP用のコンポーネントを公開していらっしゃる方がいた。

http://www.reversefolds.com/

メニューのinfoからFileHandlerを選択。ここで提供されるコンポーネントを使用すれば、簡単にファイルのアップロードが可能になる(一覧表示や削除は自前で実装する)。
ただしこのコンポーネントで使用するテーブルのカラム名が少し気に入らない。file_name、mime_type、file_size、extra_fieldというような、アンダーバー入りのカラム名がやだ。ということで、これをname、mimetype、size、extraと名前を変えることにした。

当然カラム名を変えるだけではダメで、スクリプト側での修正も必要だ。修正した箇所はコンポーネントfile_handler.phpの以下の部分。

・64行目付近($_dbFieldsの記述)
 ここのキーの部分をカラム名にあわせて変更
・392行目付近($this->_dbFieldsの記述)
 ここのキーの部分をカラム名にあわせて変更

これで大丈夫っぽい(サンプルのコントローラでも一部記述の修正が必要)。
このコンポーネント、ちゃんとモデル、コントローラ、ビューのサンプルコードも用意されているので、非常にわかりやすい!。
アップロードのアクション(add)はこれで出来たわけだから、あとはbakeして、Pager組み込めば、画像管理機能の出来上がりだ。

ん〜、ナイスコンポーネント。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net