Здравствуйте.
Столкнулся с такой проблемой.
Указал в rules
[['formFile'], 'file', 'extensions' => 'jpg', 'skipOnEmpty' => false]
и теперь поле fileInput не проходит валидацию, потому что якобы я не загрузил файл (хотя на самом деле загрузил).
Если убрать эту валидацию и сделать
[['formFile'], 'file', 'extensions' => 'jpg', 'skipOnEmpty' => true]
всё отрабатывает, как надо, и файл сохраняется.
В контроллере:
private function uploadPromoFile($model)
{
// Получаем папку для загрузки файла
$uploadPath = $this->module->getUploadPath();
$model->formFile = UploadedFile::getInstance($model, 'formFile');
if (!$model->formFile) {
return false;
}
// Формируем имя файла
$imageName = md5_file($model->formFile->tempName) . '.' . $model->formFile->extension;
// Формируем полный абсолютный путь до файла
$absoluteFilePath = $uploadPath . '/'. $imageName;
// Загружаем файл
$model->formFile->saveAs($absoluteFilePath, false);
return $imageName;
}
Помогите, пожалуйста, разобраться.
Вопрос задан
более трёх лет назад
400 просмотров