Если вы хотите ограничить доступ к файлам для каждого пользователя на основе какого-либо разрешения, вам нужно будет создать эту логику разрешения самостоятельно (StackOverflow не собирается делать вашу работу за вас), но ради ответа этот вопрос, давайте предположим, что у вас уже есть эта система разрешений, и для проверки, имеет ли пользователь доступ, наша функция - hasAccessToFile
, которая в основном просто ищет информацию, основываясь на требованиях вашей бизнес-логики.
Вместо того, чтобы предоставлять все файлы публично, вы можете обслуживать отдельные файлы, вот очень краткий пример:
Route::get('files/{pathToFile}', function($pathToFile) {
if (auth()->user()->hasAccessToFile($pathToFile)) {
return response()->file($pathToFile);
} else {
return 'Nope, sorry bro, access denied!';
}
});
См. Файл ответов Документация.
Если вам нужно обеспечить загрузку файлов, а не их обслуживание, аналогично:
Route::get('files/{pathToFile}', function($pathToFile) {
if (auth()->user()->hasAccessToFile($pathToFile)) {
return response()->download($pathToFile);
} else {
return 'Nope, sorry bro, access denied!';
}
});
См. Загрузка файлов Документация.