Laravel — Storage :: files ($ user-> gt; email) возвращает нежелательную косую черту в папку

  • Laravel 5.4
  • XAMPP на Win10

Мне действительно нужно понять раз и навсегда, какой метод возвращает косые черты, а какой — обратные косые черты.

Я сохранил свои изображения в папке с именем каждого подключенного пользователя по электронной почте как:

$userImages = Storage::files($user->email);

этот результат дает мне:

array:7 [▼
0 => "[email protected]/88bt97XslJMpre4dpJZO0ZRV9EV9GQbJw3FcQ4u8.png"1 => "[email protected]/dBfhlwB5HtNatUUCchZkA5PmqAxqruZi1zV3x3Ue.png"2 => "[email protected]/kbdJkR0oydplRA773uo6GzbYMfPJrtWILuBcuUQB.png"3 => "[email protected]/LHn80pVlrCPEj0YJcy4U6v8kTCuAOU43HGmuBNMs.png"4 => "[email protected]/MHkX31Dv5WmLtR8TsW4DgLTsQKjMwDbOrz3OlU4u.png"5 => "[email protected]/tebwcupwS4vU3BOsiLT5TUO298ImY5DprTHWnCef.png"6 => "[email protected]/YdMHREMBIQbinBw8IqBvfOLjigt5CS0XNAEUE4Le.png"]

Что здорово, так как теперь все, что мне нужно сделать, это разобрать его перед собой, но поскольку мне нужно было присвоить этим URL-адресам префикс, я использовал storage_path() следующее:

@if($userImages)
@foreach($userImages as $image)
<img src="{{storage_path().'\\'.$image}}">
@endforeach
@else
doesn't exist
@endif

И теперь получается несоответствие слешей следующим образом:

G:\xampp\htdocs\laraGo\storage\[email protected]/88bt97XslJMpre4dpJZO0ZRV9EV9GQbJw3FcQ4u8.png

Первый слеш следует storage_path()Слэш-конвенция, что я получаю от моего контроллера: $userImages Массив имеет другое соглашение по слешу.

Я был бы счастлив, если бы вы могли сообщить мне, если использование storage_path является проблемой или есть другая Метод Ларавела Я должен использовать ..

Я также был бы рад узнать, есть ли способ узнать, какие методы приводят меня, какой путь?

Спасибо, Бад.

1

Решение

хм я использую env APP_URL при доступе

 <img src="{{ env('APP_URL').'/storage/'.$image}}">
0

Другие решения

Ты можешь использовать актив, Это сгенерирует URL для актива, используя текущую схему запроса (HTTP или HTTPS)

<img src="{{ asset('storage/' . $image) }}" />
0

Ты используешь storage_path() генерировать URL, как документация говорит

возвращает полный путь к каталогу хранилища.

Это означает, что вы получаете локальный путь к хранилищу, то есть к папке на вашем компьютере, которая в вашем примере выглядит как компьютер Windows, который использует обратную косую черту во всех путях. Если вы запустите это на компьютере с Unix, вы получите путь, состоящий из прямой косой черты. Однако в этом случае вы, похоже, пытаетесь создать URL для отображения изображения, это работает для вас, потому что созданный URL ссылается на изображения на вашем локальном компьютере. Однако это не будет работать, если вы попытаетесь получить доступ с любого компьютера, кроме вашего компьютера. Чтобы создать действительный URL-адрес для актива, вам нужно использовать asset помощник, который генерирует действительный URL-адрес вашего ресурса.

0
По вопросам рекламы [email protected]