Как заставить загрузку изображений в браузере?

Я хочу заставить пользователя загружать изображения. Не открывается в браузере.

Можно использовать этот атрибут HTML5, но в настоящее время поддерживается только Chrome.

Я попробовал .htaccess решение, но оно не работает.

 <Files *.jpg> ForceType application/octet-stream Header set Content-Disposition attachment </Files> 

Как я могу принудительно загрузить все мои изображения, если пользователь нажмет на ссылку?

 <a href="http://img.ruphp.com/image/f" target="_blank" />Download</a> 

Есть два способа сделать это – один с JS, один с PHP.

В JS с этого сайта :

 <a href="javascript:void(0);" onclick="document.execCommand('SaveAs',true,'file.html');" >Save this page</a> 

В PHP создайте скрипт с именем download.php , похожий на следующий код:

 <?php // Force download of image file specified in URL query string and which // is in the same directory as the download.php script. if(empty($_GET['img'])) { header("HTTP/1.0 404 Not Found"); return; } $basename = basename($_GET['img']); $filename = __DIR__ . '/' . $basename; // don't accept other directories $mime = ($mime = getimagesize($filename)) ? $mime['mime'] : $mime; $size = filesize($filename); $fp = fopen($filename, "rb"); if (!($mime && $size && $fp)) { // Error. return; } header("Content-type: " . $mime); header("Content-Length: " . $size); // NOTE: Possible header injection via $basename header("Content-Disposition: attachment; filename=" . $basename); header('Content-Transfer-Encoding: binary'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); fpassthru($fp); 

Затем установите ссылку изображения, чтобы указать на этот файл следующим образом:

 <img src="/images/download.php?img=imagename.jpg" alt="test"> 

Попробуйте это вместо вашего .htaccess:

 <FilesMatch "\.(?i:jpg|gif|png)$"> ForceType application/octet-stream Header set Content-Disposition attachment </FilesMatch>