CakePHP ファイルのアップロードフォームを作る

PHP

CakePHP 画像や各種ファイルのアップロードフォームを作る

ファイルをアップロードするフォームの作り方が、本家のサイトでリンクが違うようになっているので?ちょっと書いておきます。

ここではバリデーションなど余分なことはつけず、フォームの作り方だけ紹介しますね。
フォームヘルパーを使えば、簡単にできます。

例:画像のアップロードフォーム

 データベースのテーブル名 wimages
 フィールド img_name に画像ファイル名が保存されるようにします。
 
 <モデル>
 app/models/wimage.php を下記のように作ります。
 class Wimage extends AppModel
 {
    var $name = 'Wimage';  
 }
 <コントローラー>
 app/controllers/wimages_controller.php を下記のように作ります
 class WimagesController extends AppController {
    var $name = 'Wimages';
    function upload()
  {	

if (!empty($this->data)) {

     //アップロードするファイルの場所

 $uploaddir = ‘C:\Program Files\xampp\htdocs\cake\img\\’;
 $uploadfile = $uploaddir . basename($this->data[‘Wimage’][‘img_name’][‘name’]);

      //画像をテンポラリーの場所から、上記で設定したアップロードファイルの置き場所へ移動

 if (move_uploaded_file($this->data[‘Wimage’][‘img_name’][‘tmp_name’], $uploadfile)){

      //成功したら、Successを表示

   print “Success”;
  }else{

      //失敗したら、errorを表示

   print “error”;
  }

     }
   } 
 }
 <ビュー>
 views/wimages/upload.ctp を下記のように作ります。
 <h1>ファイル追加</h1>
 <?php
 //フォームをこの形で作る必要があります。
 echo $form->create('Wimage', array('enctype' => 'multipart/form-data',

‘action’ => ‘upload’) );

 echo $form->input('Wimage.img_name', array('type'=>'file' ));
 echo $form->end('Save Wimage');
 ?>

参考
CakePHPフォームの作成
http://book.cakephp.org/ja/view/183/Creating-Forms
CakePHP File Fields
http://book.cakephp.org/view/303/File-Fields

  • これはcaakephp3の話なのでしょうか?verを書いていただけるとありがたいです — あd {2016-10-04 (火) 17:06:45}
  • すみません、2系の話です。。。確かに、バージョンを書いておけばよかったですね。 — 中の人 {2016-10-04 (火) 18:43:40}
カテゴリーPHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です