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
