まずviewです。
lang
1<?php
2echo $this->Form->create('Post', array('type'=>'file', 'enctype' => 'multipart/form-data'));
3echo $this->Form->input('Post.image', array('label' => false, 'type' => 'file', 'multiple'));
4echo $this->Form->submit('登録する', array('name' => 'submit'));
5echo $this->Form->end();
6?>
7
モデル
lang
1public $validate = array(
2 'image'=>array(
3 'extension' => array(
4 //ここの拡張子だけ受け付ける
5 'rule' => array('extension',array('jpg','jpeg','gif','png')),
6 'message' => array( '画像ではありません'),
7 'allowEmpty' => true,
8 ),
9 'mimetype' => array(
10 'rule' => array( 'mimeType', array(
11 'image/jpeg', 'image/png', 'image/gif') // MIMEタイプを配列で定義
12 ),
13 'message' => array( 'MIME type エラー')
14 ),
15 'size' => array(
16 'maxFileSize' => array(
17 'rule' => array( 'fileSize', '<=', '10MB'),
18 'message' => array( 'ファイルサイズがオーバーしています')
19 ),
20 'minFileSize' => array(
21 'rule' => array( 'fileSize', '>', 0),
22 'message' => array( ファイルサイズが足りていません')
23 ),
24 ),
25 ),
26);
viewのフォームに入力されたファイルが、画像ファイルかどうかモデルでバリデーションをかけます。
大事なのはバリデーションです。画像ファイルに装ってウイルスを含まれるかもしれないので、しっかりフィルターをかけましょう。
その後はコントローラーでDBに入れるのか、ファイルとしておくのか書くだけです。
ただ、気をつけるのが他のユーザーに見られない場所におきましょうね。
がんばってください!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。