我想在浏览器中播放音频文件,不想让任何人 可以直接从URL下载它们。 目前,它在Google浏览器中可以正常工作,但Safari甚至无法通过我的方式播放音频文件。
我将音频标签资源设置为通过Storage :: get($ filename)获取音频文件内容的控制器。
<audio controls="controls">
<source src="http://localhost:8000/audio/getAudio/{{ $filename }}">
</audio>
public function getAudio($filename)
{
return Storage::get($filename);
}
Safari控制台中未显示任何错误消息,因此调试起来很困难。
也许还有另一种方法可以实现我想要的功能,例如使用.htaccess 以防止用户下载当前网页中未显示的任何其他音频文件,因此我不需要将音频文件隐藏在存储文件夹中。
我以前从未使用过.htaccess,可能要花一些时间才能学会它。
答案 0 :(得分:0)
为避免下载文件,您需要在响应中添加适当的标头。
像这样:
public function getAudio($filename)
{
$file = Storage::get($filename);
return (new Response($file, 200))
->header('Content-Type', 'audio/aac');
}
您可以在响应中指定文件的MIME类型。
更多内容:MIME Types