我與上傳文件警予,我想覈實這些文件。 但對於不同類型的文件 - 不同的大小。例如 - 如果用戶想要上傳jpg或pdf文件 - maxSize - 10 MB。 - 用於視頻文件 - maxSize - 150 MB。不同maxsizes針對不同類型的文件Yii中
我怎麼能做出這樣的嗎?
這種變異是不行的,因爲工作只有第二條規則。
public function rules()
{
return array(
array('files', 'validateFiles', 'types' => 'jpg, gif, png, pdf, doc, docx', 'maxSize' => 10 * 1024 * 1024, 'on' => 'upload'),
array('files', 'validateFiles', 'types' => 'avi, mpg, flv, mov, mpeg, mp4, 3gp, wmv', 'maxSize' => 150 * 1024 * 1024, 'on' => 'upload'),
}
public function validateFiles($attribute, $params)
{
$validator = CValidator::createValidator('file', $this, $attribute, $params);
$files = array();
foreach(CUploadedFile::getInstances($this, $attribute) as $file) {
$this->$attribute = $file;
$files[] = $file;
$validator->validate($this, $attribute);
}
$this->$attribute = $files;
}