最大1MBのファイルのみを許可したい
array('taskfile', 'file', 'allowEmpty' => true, 'maxSize' => 1024 * 1024 * 1,'on' => 'newTask, edit'),
今、私のphp.iniは8MBのpost_max_filesizeを許可します。ファイルが8MB未満で1MBを超える場合、ファイル検証エラーは正しく表示されます。
ただし、ファイルが8MBを超える場合、yiiからのエラーは表示されませんが、php自体からのエラーが表示されます。問題は、ライブモードでも表示されることです。
Warning: POST Content-Length of 12028878 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
yiiがファイルサイズをチェックして検証エラーをスローしないのはなぜですか?どうすればこれを達成できますか?
解決済み:
わかりました、私は少しヘルパーメソッドでそれを解決しました。
新しい検証ルールを追加しました
array('taskfile', 'checkMaxPostSize', 'on' => 'newTask, edit'),
とヘルパーメソッド
public function checkMaxPostSize($attribute) {
if (isset($this->taskfile)) {
if ($this->taskfile->size > 1024*1024*1 ) {
$this->addError($attribute, 'file is tooooooo large');
}
}
}