Hola, tengo una aplicación web en la cual muestro unas imágenes dependiendo del nombre de archivo que le envíe, para que esta imágenes no puedan ser vistas por cualquiera, las protejo mediante una archivo .htaccess alojado en la misma carpeta.
En el archivo .htaccess solo tengo puesto esto: Deny from all,
y para mostrar las imágenes uso esta linea de html:
<img src="includes/showimg.php?wimg=00000003.jpg" />
Y este es código del archivo showimg.php:
<? $image_folder = '../doc/docs/'; if (isset($_GET['wimg']) && basename($_GET['wimg']) == $_GET['wimg']) {
$pic = $image_folder.$_GET['wimg'];
if (file_exists($pic) && is_readable($pic)) {
$ext = substr($pic, -3);
switch ($ext) {
case 'jpg':
$mime = 'image/jpeg';
break;
case 'gif':
$mime = 'image/gif';
break;
case 'png':
$mime = 'image/png';
break;
default:
$mime = false;
}
// if a valid MIME type exists, display the image
// by sending appropriate headers and streaming the file
if ($mime) {
header('Content-type: '.$mime);
header('Content-length: '.filesize($pic));
$file = @ fopen($pic, 'rb');
if ($file) {
header('Location: '.$image_folder.$_GET['wimg']);
exit;
}
}
}}?>
El problema es que cuando pongo el archivo .htaccess no se ven las imágenes, pero si lo borro si. Pero se supone que al llamar a la imagen a través de php si debería mostrármela, ¿no es así?
Muchas gracias.