public function rules()
{
return [[['file'], 'required'], [['file'], 'file', 'skipOnEmpty' => false], [['uploadPath'], 'default', 'value' => static::$defaultUploadPath], [['name', 'size'], 'default', 'value' => function ($obj, $attribute) {
return $obj->file->{$attribute};
}], [['type'], 'default', 'value' => function () {
return FileHelper::getMimeType($this->file->tempName);
}], [['filename'], 'default', 'value' => function () {
$level = $this->directoryLevel === null ? static::$defaultDirectoryLevel : $this->directoryLevel;
$key = md5(microtime() . $this->file->name);
$base = Yii::getAlias($this->uploadPath);
if ($level > 0) {
for ($i = 0; $i < $level; ++$i) {
if (($prefix = substr($key, 0, 2)) !== false) {
$base .= DIRECTORY_SEPARATOR . $prefix;
$key = substr($key, 2);
}
}
}
return $base . DIRECTORY_SEPARATOR . "{$key}_{$this->file->name}";
}], [['size'], 'integer'], [['name'], 'string', 'max' => 256], [['type'], 'string', 'max' => 64], [['filename'], 'string', 'max' => 256]];
}