Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 30.10.2018 16:24:28

Как настроить доступ к файлам(только для админа)?

На сайте форма для юзеров, юзер пишет текст и загружает файл(pdf или картинка), контент сохраняется в нужном папке в storage, что бы абы кто не мог его посмотреть. Но как сделать так, что бы админ мог видеть эти файлы? То можно ли как-то получать спец ссылку и выводить её юзеру?

Изменено Kirir (30.10.2018 16:28:06)


Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20

Не в сети

#2 30.10.2018 18:07:57

Re: Как настроить доступ к файлам(только для админа)?

Если что, эта халтура, это срочно

https://www.fl.ru/projects/3847387/opre … ravel.html


Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20

Не в сети

#3 30.10.2018 20:54:37

Re: Как настроить доступ к файлам(только для админа)?

Решение (Сохраняем и получаем любой файл из закрытой папки storage, главное не забыть добавить туда гитигнор)

'new' => [
            'driver' => 'local',
            'root' =>  storage_path('files'),
            'visibility' => 'public',
        ]
Route::get('/form', function (Request $request) {
    return view('form');
});
<form class="form-fields" action="{{ route('load-file') }}" method="POST"  enctype="multipart/form-data">
    @csrf

    <input type="file" class="validate-file" name="file" id="upload" class="inputfile" >

    <div class="form-fields__item">
        <input type="submit" value="Publish">
    </div>
</form>
Route::post('/load-file', function (Request $request) {

    $file = $request->file('file');
    $fileName = 'file'.time().'.'. $file->getClientOriginalExtension();
    $filePath = 'attacheds';
    Storage::disk('new')->putFileAs($filePath, $request->file('file'), $fileName);

    session(['file'=>$fileName]);

    return 'Файл загружен';

})->name('load-file');
Route::get('/file', function (Request $request) {

    $path = storage_path('files/attacheds/'.session('file'));

    if (!File::exists($path)) {
        abort(404);
    }

    $file = File::get($path);
    $type = File::mimeType($path);

    $response = Response::make($file, 200);
    $response->header("Content-Type", $type);

    return $response;
});

Изменено Kirir (30.10.2018 20:56:29)


Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20

Не в сети

Подвал раздела