Скачать картинку OnClick - PullRequest
3 голосов
/ 04 августа 2009

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

<a href="#"><img src="myPic.png" border="0"></a>

Ответы [ 4 ]

2 голосов
/ 04 августа 2009

Предполагая, что «загрузить» вы имеете в виду «заставить браузер пользователя вызвать диалог« сохранить или открыть »- вы не можете.

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

2 голосов
/ 04 августа 2009

Большинство людей щелкают правой кнопкой мыши по изображению и выбирают "Сохранить изображение как ..."

Альтернативой является ссылка для использования серверного скрипта, который устанавливает заголовки «Content-type» и «Content-disposition». В PHP это будет что-то вроде этого примера из документов :

header('Content-Type: image/png'); // or 'image/jpg' or 'image/gif'
header('Content-Disposition: attachment; filename="filename.png"');
readfile('original.png');

ОБНОВЛЕНИЕ: Поскольку вы говорите, что изображение в первую очередь генерируется PHP-скриптом, есть несколько вариантов:

  • Поместите URL (sig.php? ...) в качестве параметра в readfile. Это будет означать двойную обработку для всех, кто нажмет на скачивание.
  • Кэшируйте вывод вашего скрипта генерации изображения в файловую систему, а затем передайте этот файл в readfile.
  • Отредактируйте скрипт генерации изображения, чтобы он принимал дополнительный параметр, такой как mode=download, а затем, где вы собираетесь выводить изображение, если параметр присутствует, установите эти два заголовка выше.
1 голос
/ 15 мая 2012

Я обманываю это немного - я застегиваю изображение и кладу его куда-нибудь. Затем, вместо использования причудливого скрипта или серверных вещей, я делаю ссылку на изображение на местоположение файла .zip. Пользователь получает предупреждение / спрашивает, хотят ли они загрузить этот zip и вуаля ...

Но это обычно в области, где пользователь - это тот, кто хочет получить изображение ...

0 голосов
/ 04 августа 2009

Хотите открыть картинку в новом окне / вкладке? Или вы хотите загрузить его на компьютер пользователя? Если вы хотите, чтобы пользователь сохранил изображение, вам необходимо установить тип содержимого файла, который он получает:

<?php
$file = $_GET['file'];

header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary"); 
header('Content-Disposition: attachment; filename="'.basename($file).'"');
readfile($file);
?>

Не забудьте проверить ввод, чтобы люди не могли скачивать исходные файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...