href отображают загрузку ссылки по щелчку

Я генерирую нормальные ссылки как: <a href="/path/to/image"><img src="/path/to/image" /></a> в веб-приложении.

Когда я нажимаю на ссылку, она отображает изображение на новой странице. Если Вы хотите сохранить картинку, то необходимо щелкнуть правой кнопкой по ней и выбрать "сохранить Как"

Я не хочу это поведение, я хотел бы иметь поле загрузки, высовывающееся, когда я нажимаю на ссылку, которая возможна только с HTML или JavaScript? Как?

Если бы не я предполагаю, что должен был бы записать download.php сценарий и назвать его в href с именем файла как параметр...?

169
задан bstpierre 30 August 2011 в 12:29
поделиться

2 ответа

Вы не можете сделать это с чистым html / javascript. Это связано с тем, что у вас есть отдельное соединение с веб-сервером для получения отдельного файла (изображения), а обычный веб-сервер будет обслуживать файл с установленными заголовками содержимого, чтобы браузер, читающий тип содержимого, решил, что этот тип может обрабатываться внутри.

Чтобы заставить браузер не обрабатывать файл внутренне, нужно изменить заголовки (предпочтительно, content-disposition или content-type), чтобы браузер не пытался внутренне обрабатывать файл. Вы можете сделать это, написав сценарий на веб-сервере, который динамически устанавливает заголовки (например, download.php), или настроив веб-сервер для возврата разных заголовков для файла, который вы хотите загрузить. Вы можете сделать это для каждого каталога на веб-сервере, что позволит вам обойтись без написания php или javascript - просто разместите все загруженные изображения в одном месте.

3
ответ дан 23 November 2019 в 20:51
поделиться

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

Я нашел пример использования mod_rewrite , хотя я знаю, что есть более простой способ.

10
ответ дан 23 November 2019 в 20:51
поделиться
Другие вопросы по тегам:

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