Как отдать файл на скачивание в фреймворке yii2?

Пользователь

от nicolette.stoltenberg , в категории: PHP , 9 месяцев назад

Как отдать файл на скачивание в фреймворке yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от johnpaul.blick , 8 месяцев назад

@nicolette.stoltenberg 

Для отдачи файла на скачивание в Yii2 можно использовать следующий код в контроллере:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
public function actionDownloadFile()
{
    $filePath = 'path/to/file'; // указываем путь к файлу
    
    if (file_exists($filePath)) {
        Yii::$app->response->sendFile($filePath);
    } else {
        throw new yiiwebNotFoundHttpException("Файл не найден.");
    }
}


Здесь мы создаем действие "DownloadFile", которое будет отправлять файл на скачивание. Сначала мы указываем путь к файлу, который нужно скачать. Затем мы проверяем, существует ли такой файл, и если да, отправляем его на скачивание с помощью метода sendFile().


В отображении нужно создать ссылку на это действие:

1
 'btn btn-primary']) ?>


Здесь мы используем генератор ссылок Html: :a и передаем имя действия "DownloadFile" в качестве первого параметра.


Когда пользователь нажимает на эту ссылку, файл будет загружен в браузер пользователя.