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() ?>

Follow me!

å‰ã®è¨˜äº‹

PHP Composer