Bienvenid@s, hoy vamos a ver un ejemplo de como forzar la descarga de archivos a través de cabeceras HTTP, precisamente la descarga de imágenes con extensión jpg|png|gif , en el switch como default se incluye application/force-download, que va a permitir descargar cualquier archivo, no es aconsejable si lo que quieres permitir es la descarga de un tipo o tipos de archivos en concreto, ya que con force-download podrías descargar por ejemplo un .exe u otro cualquier archivo que se te antoje.
En definitivo aquí os dejo el código de ejemplo para que lo amolden a sus necesidades ...
/*Forzar descarga de archivos*/ /*Ruta de la imagen*/ $ruta = 'php-o.png'; /*Información de la imagen para obtener la extensión*/ $info = pathinfo($ruta); /* Obtener la extensión */ $ext = strtolower($info["extension"]); switch($ext) { case 'png': $tipo = 'image/png'; break; case 'jpg': $tipo = 'image/jpg'; break; case 'gif': $tipo = 'image/gif'; break; default: /* Para descargar cualquier tipo de archivo si quieres que se descarguen sólo imágenes quita esta parte de aquí */ $tipo = 'application/force-download'; break; } $size = filesize($ruta); header('Pragma: public'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); /*Para algunos navegadores*/ header('Cache-Control: private', false); /*Para algunos navegadores*/ header('content-type: '.$tipo.''); header('content-disposition: attachment; filename="'.basename($ruta).'"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.$size); readfile($ruta);
No hay comentarios:
Publicar un comentario