Скачать или показать: заголовок Content-Disposition

Открытие файла по прямой ссылке может привести либо к отображению файла прямо в браузере, либо к его скачиванию. Контролируется это поведение очень просто — HTTP-заголовком Content-Disposition в ответе сервера.

Если нужно отобразить файл прямо в браузере (если отображение не поддерживается, браузер скачает файл):

Content-Disposition: inline

Если нужно сразу скачивать файл (дополнительно можно указать имя файла в параметре filename):

Content-Disposition: attachment
Content-Disposition: attachment; filename="kitten.jpg"

Будьте внимательны: если вы используете Content-Disposition: inline для видео, ваш сервер должен поддерживать HTTP-запросы с байтовыми диапазонами, иначе видео не будет воспроизводиться в Safari, а скачать его оттуда же не получится.