Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Есть папки с изображениями, путь к ним таков "site.com/1/thumbnail.png", проблема в том что число в url это id пользователя и надо сделать так что бы только например админ имел доступ к этим фото, еще одна проблема путь к изображению нежелательно сохранять в базу, middleware и storage писал, ничего не вышло
Не в сети
Ну видимо надо начать с того, что физически этих файлов не должно быть в public. Если есть авторизация доступа, значит надо отдавать файл через PHP (через роуты, контроллеры и т.д. как ты странички отдаёшь, всё так же, только тип контента другой)
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
я просто не совсем понял как это делать, например сохраняю я картинку в storage/local что бы ее небыло видно, как мне ее отрендерить на екран?
Не в сети
На "голом PHP" это было бы как-то так:
header("Content-type: image/png"); // ну или другой тип какой надо
readfile("$pathToPngfile);
exit;
А на Laravel как-то так:
return response()->file($pathToFile);
Laravel должен сам позаботиться о правильных заголовках ответа.
Изменено artoodetoo (25.07.2019 20:31:52)
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
я не посмотрел ответ и сделал немного по другому через storage но все равно спасибо может позже перепишу код, а тут я сделал по своему может поможет кому то
функция рендера изображения
public function getUserPhoto($id, $filename)
{
$path = storage_path('app/public/uploads/'. $user. '/' . $filename);
if(!Storage::disk('public')->exists('uploads/'.$user.'/'.$filename)) {
abort(404);
}
$image = imagecreatefromstring(file_get_contents($path));
header('Content-type: image/pjpeg');
return imagejpeg($image);
}
а вот роут
Route::get('/storage/{id}/{filename}', 'UsersController@getUserPhoto')->name('get.user.photo');
ну и сам рендер на вюхе
<img src="{{ route('get.user.photo', [$user->id, 'thumbnail.jpeg'])}}">
Изменено DaKoshin (25.07.2019 21:11:32)
Не в сети
Страницы 1