Как воспроизвести аудиофайл в Safari, не позволяя никому напрямую его скачивать? - PullRequest
1 голос
/ 16 мая 2019

Я хочу воспроизводить аудиофайлы в браузере и не хочу, чтобы кто-либо мог напрямую загрузить их с URL-адреса.В настоящее время он отлично работает в браузере Google, но Safari не может даже воспроизводить аудиофайлы через мой путь.

Я установил ресурс тега аудио для контроллера, который получает содержимое аудиофайла через Storage :: get ($ имя файла).

<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 голосов
/ 16 мая 2019

Чтобы избежать загрузки файла, вам необходимо добавить в свой ответ правильные заголовки.
Примерно так:

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

Вы можете указать тип MIME вашего файла в своем ответе.
Подробнее здесь: Типы MIME

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