class Info extends ActiveRecord
{
// Файлы
public $img_preview__file;
public $img_full__file;
// Пути
public $img_preview__path;
public $img_full__path;
public static function tableName()
{
return '{{info}}';
}
public function rules() {
return [
[['title', 'preview', 'description_seo'], 'string', 'length' => [0, 255]],
[['title', 'preview', 'description_seo'], 'filter', 'filter' => 'strip_tags'],
[['title', 'preview', 'description_seo'], 'trim'],
[['title', 'preview', 'description_seo'], 'required'],
[['img_preview__file', 'img_full__file'], 'file', 'skipOnEmpty' => false, 'extensions' => 'jpg, jpeg'],
['description', 'safe'],
[['img_preview', 'img_full'], 'safe'],
];
}
public function upload() {
if ( $this->validate() ) {
// Создание директории
$folderName = $this->generateUniqFileName("web/info");
FileHelper::createDirectory( Yii::getAlias("@frontend/web/img/info/$folderName") );
// Создание файла
$this->img_preview__path = $folderName . '/' . $this->generateUniqFileName("web/info/$folderName") . '.' . $this->img_preview__file->extension;
$this->img_preview__file->saveAs( Yii::getAlias("@frontend/web/img/info/$this->$this->img_preview__path") );
// Создание Файла
$this->img_full__path = $folderName . '/' . $this->generateUniqFileName("web/info/$folderName") . '.' . $this->img_full__file->extension;
$this->img_full__file->saveAs( Yii::getAlias("@frontend/web/img/info/$this->img_full__path") );
return true;
}
return false;
}
public function generateUniqFileName($path) {
$name = bin2hex(random_bytes(8));
if ( file_exists( Yii::getAlias("@frontend/$path/$name") ) ) return $this->generateUniqFileName();
else return $name;
}
}
public function actionAdd()
{
$model = new Info();
if ( $model->load(Yii::$app->request->post()) ) {
$model->img_preview__file = UploadedFile::getInstance($model, 'img_preview');
$model->img_full__file = UploadedFile::getInstance($model, 'img_full');
if ( $model->upload() ) {
$model->img_preview = $model->img_preview__path;
$model->img_full = $model->img_full__path;
} else {
Yii::$app->session->setFlash('message', 'Не правильные данные!');
return $this->render('add', compact('model'));
}
if ($model->save(false)) {
Yii::$app->session->setFlash('message', 'Информация добавлена!');
return $this->refresh();
}
Yii::$app->session->setFlash('message', 'Не правильные данные!');
}
return $this->render('add', compact('model'));
}
Контроллер:
UrlManager:
Код:
Пробовал ставить и так:
Все равно не работает, что то очень страшное происходить(((