Mostrar imagen desde PHP sin

Para imprimir en pantalla una imagen sin mostrar su ruta verdadera podemos usar el siguiente código en PHP.
Digamos que tenemos la página img.php con el siguiente código:

$ruta = "testing/images/"; 
$file = $ruta . base64_decode($_GET['i']) . ".jpg"; 
header('Content-Type: image/jpeg'); 
readfile($file);

Donde $ruta es la ruta donde se tienen almacenadas las imágenes, y $file es la imagen que queremos mostrar, en este caso llamo a la imagen con: img.php?i=base64_encode(nombreimagen), donde para controlar un poco la seguridad lo codifico con base64, pero lo pueden quitar, ya depende de ustedes.

$file toma el valor de “i” por GET, lo decodifica y header le dice al navegador: “ok navegador, esto es un imagen jpg”, con readfile leemos el archivo y lo imprimimos.. y listo!, imagen mostrada, ruta desconocida para todos los usuarios que naveguen en el sitio.

Ejemplo de uso: Tengo en mi imagen llamada test.jpg en archivos/seguros/test.jpg, en mi index llamo a mi img.php para que lo imprima así:
echo "< img src='test.php?i=". base64_encode('logo') ."' />";

Dejo archivos para su descarga | ZIP

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *