public function saveUploadedFile($deleteOldFile = null)
{
/* @var $file UploadedFile */
$file = $this->{$this->attribute};
if ($file !== null) {
$callback = $this->saveCallback;
if ($callback !== null && is_string($callback)) {
$callback = [$this->owner, $callback];
}
$model = FileModel::saveAs($file, ['uploadPath' => $this->uploadPath, 'directoryLevel' => $this->directoryLevel, 'saveCallback' => $callback]);
if ($model) {
if ($this->savedAttribute !== null) {
if ($deleteOldFile === null) {
$deleteOldFile = $this->deleteOldFile;
}
$oldId = $this->owner->{$this->savedAttribute};
$this->owner->{$this->savedAttribute} = $model->id;
if ($deleteOldFile && ($oldModel = FileModel::findOne($oldId)) !== null) {
return $oldModel->delete();
}
}
return true;
}
return false;
}
}