/
dayn
/
first-project-windows
Обзор
Документация
Войти
/
dayn
/
first-project-windows
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
controllers/FileController.php
73 строки
2 KB
БахаМонстр666
baha
11 май 2026, 16:51
11 май 2026, 16:51
99af124
Код
Авторство
О чём код?
<?php namespace app\controllers; use Yii; use yii\web\Controller; use yii\web\UploadedFile; use app\models\SingleUploadForm; use app\models\MultipleUploadForm; use app\models\File; class FileController extends Controller { public function actionSingleUpload() { $model = new SingleUploadForm(); if (Yii::$app->request->isPost) { $model->file = UploadedFile::getInstance($model, 'file'); if ($fileModel = $model->upload()) { Yii::$app->session->setFlash('success', "Файл {$fileModel->name} успешно загружен!!"); return $this->refresh(); } else { Yii::$app->session->setFlash('error', 'Ошибка загрузки файла. Проверьте формат и размер.'); } } return $this->render('single-upload', ['model' => $model]); } public function actionMultipleUpload() { $model = new MultipleUploadForm(); if (Yii::$app->request->isPost) { $model->files = UploadedFile::getInstances($model, 'files'); if ($savedFiles = $model->upload()) { Yii::$app->session->setFlash('success', 'Успешно загружено файлов: '. count($savedFiles)); return $this->refresh(); } else { Yii::$app->session->setFlash('error', 'Ошибка загрузки файлов. Проверьте форматы и размеры.'); } } return $this->render('multiple-upload', ['model' => $model]); } public function actionDelete($id) { $file = File::findOne($id); if ($file && unlink($file->path)) { $file->delete(); Yii::$app->session()->setFlash('success', 'Файл удален'); } else { Yii::$app->session()->setFlash('error', 'Ошибка удаления'); } return $this->redirect(['index']); } public function actionDownload($id) { $file = File::findOne($id); if ($file && file_exists($file->path)) { return Yii::$app->response->sendFile($file->path, $file->name); } throw new \Yii\web\NotFoundHttpException('Файл не найден'); } }