как загрузить изображение и получить его URL в Laravel 6 - PullRequest
0 голосов
/ 21 февраля 2020

Я знаю, что это должно быть самым основным c материалом в мире, но почему-то я не могу заставить его работать. У меня есть модель Категория, которая имеет поле изображения

Это код, который загружает файл

$uploadedFile = $request->file('image');
$fileName = time().$uploadedFile->getClientOriginalName();
$path = $uploadedFile->move(public_path().'/uploads/categories', $fileName);
$category->image = $path;
$category->save();

, когда я пробую его, он фактически загружает изображение, но не показывает правильный URL-адрес Я хочу использовать URL-адрес в теге img, подобном этому

<img src="{{$category->image}}" class="img-fluid"/>

, когда я печатаю URL-адрес, я получаю что-то вроде этого

"C:\Projects\duars_web\public/uploads/categories\15822290505.png"

, что, конечно, не будет работать на IMG тег ... какая-либо подсказка, почему это происходит? и как получить правильный URL для моего загруженного файла?

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Вам нужно вставить только имя вашего изображения с расширением в таблицу:

if($request->hasFile('image'))
{
  $image = $request->file('image');
  $image_name = time().$image->getClientOriginalExtension();
  $destinationPath = public_path('/uploads/categories');
  $image->move($destinationPath, $image_name);
}

$user = new User;
$user->image = $image_name; // Save only file name
// More data
$user->save();

Тогда на вашем блейде:

<img src="{!! asset($category->image) !!}" class="img-fluid"/>

или

<img src="/uploads/categories/{{ $category->image }}" class="img-fluid"/>

Надеюсь это помогает.

0 голосов
/ 21 февраля 2020

Попробуйте это:

<img src="{!! asset('images/uploads/categories/logo.svg') !!}" />
...