Как я вызываю загрузку с HTML/JavaScript?

У меня есть ссылка и, если пользователь нажимает ее, мне нужны 2 вещи произойти:

  • Надлежащий ответ HTTP отправляется пользователю (особенно с Content-Type: video/mp4)
  • и видеофайл автоматически начнет загружать.

Я видел что-то вроде этого с PHP, но действительно ли это возможно только с HTML/JavaScript?

9
задан brasofilo 2 February 2016 в 09:44
поделиться

2 ответа

Автоматически во многом зависит от браузера и его параметров. Но вы можете сообщить браузеру, что вы хотите, чтобы произошло (что затем он перепроверит с пользователем) через заголовок Content-Disposition в ответе. Например, если установить для него значение attachment; filename = blah.mp4 , в большинстве браузеров пользователю будет предложено загрузить его (используя это имя файла), даже если обычно браузер пытался отобразить / воспроизвести контент в собственном интерфейсе. Подробности смотрите по ссылке. (Загрузка, вероятно, является стандартной для файлов mp4, но это зависит от пользователя; я нахожу это полезным, когда предлагаю ссылки для загрузки для файлов HTML.)

Вы можете установить заголовок через конфигурацию на своем веб-сервере, если вы не используете серверные сценарии (как вы сказали, что это не так). Например, с Apache вы должны использовать правило сопоставления URL-адресов для этих видеофайлов и использовать директиву Header .

2
ответ дан 4 December 2019 в 06:06
поделиться

Нет, это невозможно (по крайней мере, для значений JavaScript, ограниченных клиентским JavaScript).

Если вы хотите переопределить поведение по умолчанию того, как браузер обрабатывает HTTP-ресурс, вам нужно сделать это с помощью HTTP-заголовков. Если вы хотите сделать это правильно, используйте заголовок content-disposition (со значением вложения).

Вы можете установить этот заголовок, используя серверный JavaScript или (практически) любую другую серверную среду.

2
ответ дан 4 December 2019 в 06:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: