Я хочу создать ссылку <a href
, которая при нажатии заставляет ваш браузер открыть диалог «Сохранить как».Использование атрибута HTML5 download
должно иметь такое поведение во всех современных браузерах.
Когда целью является файл размещенного изображения извне , это не работает.Ссылка <a href
будет переходить к изображению вместо его загрузки.(Протестировано с использованием изображений, размещенных на Imgur и Tumblr)
Similar HTML code does work if the image is hosted locally on your server, for example
Another example - this will work in the W3Schools Tryit Editor , но не будет работать, если вы скопируете HTML-код в другую изолированную программную среду, например JSFiddle
<a href="https://www.w3schools.com/images/myw3schoolsimage.jpg" download>
<img src="https://www.w3schools.com/images/myw3schoolsimage.jpg" width="104" height="142">
</a>
Возможные причины исследования:
- Неверное изображение URL: нет, URL-адрес хороший, вы можете открытьURL в виде обычного изображения в вашем браузере
- Ссылки с https: не могут использоваться таким образом из-за безопасности: нет, URL с
https:
подходит, если URL указываетв тот же домен, протестировано в W3Schools Tryit Editor - Перенаправление на стороне сервера: ссылка
http://...
может быть перенаправлена на https://...
, так что может быть причиной сбоя, носсылка https://...
также не работает - Подавление атрибута загрузки на сервер конкретными хостами? это вообще возможно?атрибут загрузки должен контролировать только действия браузера на стороне клиента?
Есть ли обходные пути?Я попробовал методы загрузки Javascript, обсуждаемые здесь и здесь , но все они в конечном итоге включали действия браузера, аналогичные нажатию на ссылку href
.
Отличное всестороннее обсуждение ссылок на скачивание , включая application/force-download
настройку в PHP на сервере
Связанный вопрос StackOverflow: Принудительная внешняя загрузка URL (ответ кажется неправильным)