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}