Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
На сайте форма для юзеров, юзер пишет текст и загружает файл(pdf или картинка), контент сохраняется в нужном папке в storage, что бы абы кто не мог его посмотреть. Но как сделать так, что бы админ мог видеть эти файлы? То можно ли как-то получать спец ссылку и выводить её юзеру?
Изменено Kirir (30.10.2018 16:28:06)
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Если что, эта халтура, это срочно
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Решение (Сохраняем и получаем любой файл из закрытой папки 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
Не в сети
Страницы 1