Я хочу знать, есть ли какой-то способ делать кнопку, которая позволяла бы загружать изображения, которые сохранялись на другом сервере с одной унифицированный указатель ресурса. А именно, как кликать право - сохранять изображение как но с кнопкой. Я искал решения с PHP или язык сценариев JavaScript, но еще я ничего не нашел.
Признак download
HTML5 оно не функционирует во всех браузерах. Какая-то альтернатива существует с языком сценариев JavaScript?.
Используя HTML5 обрежь использовать признак" download "
<a href="http://static.hogarmania.com/archivos/201204/estrenimiento-gato-bebe2-xl-668x400x80xX.jpg" download="cute.jpg">
<img src="http://static.hogarmania.com/archivos/201204/estrenimiento-gato-bebe2-xl-668x400x80xX.jpg" width="250" />
</a>
Demo: https://jsfiddle.net/Socramg/1o9oec7r /
Используя JS (и jQuery )
$('a[download]').each(function() {
var $a = $(this),
fileUrl = $a.attr('href');
$a.attr('href', 'data:application/octet-stream,' + encodeURIComponent(fileUrl));
});
То, что ты можешь делать, с PHP первым состоит в том, чтобы копировать изображение в сервер и despuГ©s загружать ее, например:
$rutaImagenExterna = 'http://static.hogarmania.com/archivos/201204/estrenimiento-gato-bebe2-xl-668x400x80xX.jpg';
$rutaImagenLocal = 'mis_imagenes/cat.jpg';
// Opción 1 necesitas habilitar allow_url_fopen & PHP5+
copy($rutaImagenExterna, $rutaImagenLocal);
// Opción 2
$content = file_get_contents($rutaImagen);
$fp = fopen($rutaImagenLocal, 'w');
fwrite($fp, $content);
fclose($fp);
сейчас загружать для нее ты можешь использовать этот cГіdigo
header('Content-disposition: attachment; filename='.$rutaImagenLocal);
header('Content-type: image/jpeg');
readfile('cat.jpg');
readfile('cat.jpg')
возможно добавлять unlink($rutaImagenLocal)
и с этим он удалит ее. Это не значит, что возможно удалять папку mis_imagenes из $rutaImagenLocal, эта папка всегда должна существовать, чтобы мочь копировать изображение с url, но если он удалит изображение, которое пользователь загрузил.
– Leonardo Henao
20.08.2019, 09:54
Это пример это два файла PHP и HTML
Descarga.php
<?php
if (!isset($_GET['archivo']) || empty($_GET['archivo'])) {
exit();
}
$archivo = basename($_GET['archivo']);
$ruta = 'archivos/'.$archivo;
if (is_file($ruta))
{
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename='.$archivo);
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($ruta));
readfile($ruta);
}
else
exit();
?>
и только посредством линии в html ты это называешь
<a href="descarga.php?archivo=direccion.extension" class="btn btn-buynow">Descargar</a>
Завись от того, как конфигурировался другой сервер это может не функционировать, так как hotlinking, или как ее называются эта техника, она запрещена в каких-то машинах, хотя это не была бы должна быть проблема, если бы ты смог конфигурировать это.
Ты можешь делать это с языком сценариев JavaScript программной формы этой формы:
var ruta = 'http://jmri.org/images/ico-java.png';
var enlace = document.createElement('a');
enlace.href = ruta;
enlace.download = ruta;
document.body.appendChild(enlace);
enlace.click();
//Borrrar el elemento
enlace.parentNode.removeChild(enlace);
Также ты можешь загружаться используя PHP следующей формы:
<?php
$ruta= "http://jmri.org/images/ico-java.png";
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename='" . basename($ruta) . "'");
readfile ($ruta);
?>
Saludos.