В Laravel можно очень просто реализовать загрузку файлов с сервера. Поэтому, в этом посте я покажу способ загрузки файлов-роутеров, но только для авторизованных пользователей…
Реализация загрузки файлов в Laravel
В начале, группа посредник для настройки промежуточной аутентификации:
Route::group(['middleware' => 'auth'], function () {
Далее создаем выделенный маршрут загрузки:
Route::get('download', function () {
Собираем запрос:
$path = request('f');
Определяем расширение файла:
$extension = pathinfo($path, PATHINFO_EXTENSION);
Определяем массив с расширениями файлов запрещенных к скачиванию:
$blocked = ['php', 'htaccess'];
Если расширение запрашиваемого файла отсутствует в массиве выше, то скачиваем его через отклик загрузки файла:
if (! in_array($extension, $blocked)) { return response()->download($path); }
Весь код:
//только авторизованный пользователь может скачать файл Route::group(['middleware' => 'auth'], function () { //обращаемся к маршруту /download?f=path Route::get('download', function () { //получаем GET запрос $path = request('f'); //смотрим на расширение запрашиваемого файла $extension = pathinfo($path, PATHINFO_EXTENSION); //создаем массив расширений файлов запрещенных к скачиванию $blocked = ['php', 'htaccess']; //если расширение запрашиваемого файла отсутствует в массиве выше if (! in_array($extension, $blocked)) { //скачиваем этот файл return response()->download($path); } }); });