我只想允许最大 1MB 的文件
array('taskfile', 'file', 'allowEmpty' => true, 'maxSize' => 1024 * 1024 * 1,'on' => 'newTask, edit'),
现在,我的 php.ini 允许 post_max_filesize 为 8MB。如果文件小于 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');
}
}
}