CakePHP2の画像アップロードプラグイン「UploadPack」を試してみた
こんにちは! CakePHP2の画像プラグインを色々試しているので今回は「UploadPack」というのを試してみました。 いってみましょう!!
CakePHP2とUploadPackをインストール、有効化
インストールからしましょう。 Composerでインストールしたいのですが「UploadPack」はCompserに対応していないため、git submodule などでインストールするといいかもしれません。
composer.json
{ "name": "uploadpack-example", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "pear-cakephp/cakephp": "2.4.*", "cakephp/debug_kit": "2.2.*" } }
とりあえずCakePHPが動くように設定していきましょう。 以前まとめたのでこちらをご覧下さい。
CakePHP2をComposerでインストールしてプロジェクトを立ち上げるまで
プロジェクトが立ち上がったらgit submoduleでインストールしましょう。
$ git submodule add https://github.com/szajbus/uploadpack.git Plugin/UploadPack
最後にbootstrap.phpにプラグインを読み込むように書き込みましょう。
Config/bootstrap.php
CakePlugin::load('UploadPack');
これで有効化出来ました。
UploadPackの設定
実際にコードを書いていきます。
UploadPackでは_file_nameというものがついているフィールドに画像情報を保存するのでテーブル内に_file_nameがついたフィールドを用意しましょう。
CREATE table users ( id int(10) unsigned NOT NULL auto_increment, login varchar(20) NOT NULL, avatar_file_name varchar(255) );
Userモデルに対してコードを書いていきます。
Model/User.php
[ 'avatar' => [ 'styles' => [ 'thumb' => '80x80' ] ] ] ]; }
アップロード処理をControllerに書いていきます。といってもデータを普通に保存するような形で構いません。
Controller/UsersController.php
request->is('post'){ $this->User->create($this->request->data); if($this->User->save()){ $this->Session->setFlash('image upload!'); } } } }
あとはViewです。「UploadPack」にはhelperがついているのでそこから呼び出しましょう。(Controllerでhelperを読み込んでます。6行目)
View/Users/index.ctp
Upload->uploadImage($user, 'User.avatar', array('style' => 'thumb')) ?>
これで動きますー! 80×80の画像が生成されたと思います。
最後に
データベースのフィールドに制約があるものの、ヘルパーもついていてとても簡単に画像アップロードが実装出来るのでおすすめのプラグインです。 composerに対応してくれるともっと嬉しいなーってプルリク送れってことですねすみません!
技術評論社
売り上げランキング: 30,585