que tengo un problema serio en la última etapa de un proyecto que estoy trabajando:descargar imágenes automáticamente desde cualquier ubicación URL
escribí una función PHP que hace posible que un usuario descargue automáticamente una imagen en un disco duro haciendo clic en su enlace. Pero eso fue fácil porque la imagen se cargó en el servidor del sitio web y supe que es la dirección completa del servidor. Por ejemplo: "home/clients/websites/w_apo/public_html/wp-content/uploads/image.jpg"
Pero ahora el cliente quiere la capacidad de pegar la URL de la imagen de su propia dirección de http://www.something.com/image.jpg
y aún así ser capaz de descargar automáticamente esa imagen haciendo clic en el enlace en la interfaz.
Soy algo nuevo en esta área de programación, así que realmente necesito su ayuda. Cualquier enlace, consejo, recursos son bienvenidos.
Gracias!
Ésta es mi función actual para la descarga:
download_file($_GET['file']);
/******************************************************************/
function download_file($fullPath){
// Must be fresh start
if(headers_sent())
die('Headers Sent');
// Required for some browsers
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
// File Exists?
if(file_exists($fullPath)){
// Parse Info/Get Extension
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
// Determine Content Type
switch ($ext) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$fsize);
ob_clean();
flush();
readfile($fullPath);
} else
die('File Not Found');
}
publicar su código. –
publicado. ¿Puedes decirme cómo ajustarlo? gracias –
¿La ubicación de la nueva imagen proviene de diferentes fuentes? ¿O estarán ubicados en el mismo servidor? –