CakePHP ファイルアップロード機能(josegonzalez/Upload)
インストール
Composerからライブラリインストール
# composer require josegonzalez/cakephp-upload
設定
ライブラリロード設定
# bin/cake plugin load josegonzalez/Upload
↓ にロード設定が追加される
※/config/bootstrap.php
Plugin::load('Josegonzalez/Upload.Upload');
モデル
class ProductsTable extends Table
{
public function initialize(array $config)
{
parent::initialize($config);
$this->setTable('products');
$this->setDisplayField('id');
$this->setPrimaryKey('id');
$this->addBehavior('Timestamp');
// Upload Plugin
$this->addBehavior('Josegonzalez/Upload.Upload', [
最小機能(アップロードのみ)
'image' => [],
ファイル名自動作成
'image' => [
'nameCallback' => function ($data, $settings) {
return uniqid().'-'.strtolower($data['name']);
}
],
レコード削除時にファイルを削除
'image' => [
'keepFilesOnDelete' => false
],
]);
}
}
ビュー
<?= $this->Form->create($product, ['type' => 'file']) ?>
<?= $this->Form->control('image', ["type"=>"file"]); ?>
<?= $this->Form->end() ?>