Когда я пытаюсь сохранить файл, он не сохраняется в хранилище \ app \ public. - PullRequest
0 голосов
/ 14 июня 2019

Моя проблема в том, что функция store не сохраняет песню в хранилище / app / public, она хранит ее в хранилище / app, и по этой причине я не могу связать ее, а также не могу воспроизвести песню.

Я попытался в функции store написать общедоступный каталог, но когда я попытался воспроизвести песню, он не видит файл, потому что общедоступный каталог был в пути следующим образом: http://127.0.0.1:8000/storage/public/the_song

Контроллер:

  public function store(Request $request)
  {
     $song = $request->the_song->store('songs');

     $music = Music::create([
        'sound'=> $song,
        'name'=> $request->name
     ]);

     session()->flash('success', 'The Song Successfully Saved');
     return redirect(route('music.index'));

   }

Воспроизведение песни:

<audio controls autoplay>

  <source src="{{ asset($song->sound) }}" type="audio/ogg">
  <source src="{{ asset($song->sound) }}" type="audio/mpeg">

</audio>

1 Ответ

1 голос
/ 14 июня 2019

По умолчанию Laravel использует диск с файловой системой local (см. config/filesystems.php). Чтобы сохранить его в public, вы должны явно использовать его:

$song = $request->the_song->store('songs', 'public');

А также при извлечении файла:

Storage::disk('public')->url($song->sound)

Или вы можете просто установить диск по умолчанию на public.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...