CakePHP のファイルアップロードでファイルの最大サイズを制限する方法

CakePHP のバリデーションでファイルのサイズをチェックするバリデーションルールを探したのですが、存在しないようでしたので、ビヘイビアに以下のように自作のファイルサイズチェックメソッドを追加します。

1
2
3
4
5
6
7
8
9
public function max_file_size(&$model, $data, $file_size)
{
    $data = array_shift($data);
    if($data['error'] == 0 && $data['size'] < $file_size) {
        return true;
    } else {
        return false;
    }
}

そして以下のようにバリデーションを設定すれば最大サイズを制限できます。

1
2
3
4
5
6
$this->validate['file'] = Array(
    'max_file_size' => Array(
        'rule' => Array('max_file_size', 2000000),
        'message' => '20MB以上の添付ファイルは送付できません。'
    ),
);

コメント

コメントは受け付けていません。