如何在Safari中播放音频文件而不让任何人直接下载它?

时间:2019-05-16 09:06:30

标签: laravel audio safari

我想在浏览器中播放音频文件,不想让任何人  可以直接从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,可能要花一些时间才能学会它。

1 个答案:

答案 0 :(得分:0)

为避免下载文件,您需要在响应中添加适当的标头。
像这样:

public function getAudio($filename)
{
    $file = Storage::get($filename);
    return (new Response($file, 200))
           ->header('Content-Type', 'audio/aac');
}

您可以在响应中指定文件的MIME类型。
更多内容:MIME Types

相关问题