我的问题是存储功能没有将歌曲存储在storage / app / public中 它将它存储在存储设备/应用程序中,因此,我无法链接它,也无法播放歌曲。
我曾尝试在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>
答案 0 :(得分:1)
默认情况下,Laravel使用local
文件系统磁盘(请参见config/filesystems.php
)。要将其保存在public
中,您必须明确使用它:
$song = $request->the_song->store('songs', 'public');
以及在检索文件时:
Storage::disk('public')->url($song->sound)
或者您也可以将默认磁盘设置为public
。