我想在浏览器中播放音频文件,不想让任何人直接从URL下载它们。目前,它在谷歌浏览器上运行良好,但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,可能需要一段时间才能学会。
发布于 2019-05-16 18:27:27
为了避免下载文件,您需要在响应中添加适当的标头。
如下所示:
public function getAudio($filename)
{
$file = Storage::get($filename);
return (new Response($file, 200))
->header('Content-Type', 'audio/aac');
}
您可以在响应中指定文件的MIME类型。
更多信息请点击这里:MIME Types
https://stackoverflow.com/questions/56164818
复制相似问题