У меня есть ссылка и, если пользователь нажимает ее, мне нужны 2 вещи произойти:
Content-Type: video/mp4
) Я видел что-то вроде этого с PHP, но действительно ли это возможно только с HTML/JavaScript?
Автоматически во многом зависит от браузера и его параметров. Но вы можете сообщить браузеру, что вы хотите, чтобы произошло (что затем он перепроверит с пользователем) через заголовок Content-Disposition
в ответе. Например, если установить для него значение attachment; filename = blah.mp4
, в большинстве браузеров пользователю будет предложено загрузить его (используя это имя файла), даже если обычно браузер пытался отобразить / воспроизвести контент в собственном интерфейсе. Подробности смотрите по ссылке. (Загрузка, вероятно, является стандартной для файлов mp4, но это зависит от пользователя; я нахожу это полезным, когда предлагаю ссылки для загрузки для файлов HTML.)
Вы можете установить заголовок через конфигурацию на своем веб-сервере, если вы не используете серверные сценарии (как вы сказали, что это не так). Например, с Apache вы должны использовать правило сопоставления URL-адресов для этих видеофайлов и использовать директиву Header
.
Нет, это невозможно (по крайней мере, для значений JavaScript, ограниченных клиентским JavaScript).
Если вы хотите переопределить поведение по умолчанию того, как браузер обрабатывает HTTP-ресурс, вам нужно сделать это с помощью HTTP-заголовков. Если вы хотите сделать это правильно, используйте заголовок content-disposition (со значением вложения).
Вы можете установить этот заголовок, используя серверный JavaScript или (практически) любую другую серверную среду.