В Laravel можно очень просто реализовать загрузку файлов с сервера. Поэтому, в этом посте я покажу способ загрузки файлов-роутеров, но только для авторизованных пользователей…
Реализация загрузки файлов в Laravel
В начале, группа посредник для настройки промежуточной аутентификации:
1 |
Route::group(['middleware' => 'auth'], function () { |
Далее создаем выделенный маршрут загрузки:
1 |
Route::get('download', function () { |
Собираем запрос:
1 |
$path = request('f'); |
Определяем расширение файла:
1 |
$extension = pathinfo($path, PATHINFO_EXTENSION); |
Определяем массив с расширениями файлов запрещенных к скачиванию:
1 |
$blocked = ['php', 'htaccess']; |
Если расширение запрашиваемого файла отсутствует в массиве выше, то скачиваем его через отклик загрузки файла:
1 2 3 |
if (! in_array($extension, $blocked)) { return response()->download($path); } |
Весь код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
//только авторизованный пользователь может скачать файл 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); } }); }); |