Foros del Web » Programando para Internet » PHP »

Problema con readfile() en PHP5

Estas en el tema de Problema con readfile() en PHP5 en el foro de PHP en Foros del Web. Friends, Entendidos en PHP4 y PHP5 y en temas de servidores, extiendo esta consulta porque ya creo que no es favorable darle tantas vueltas. Estoy ...
  #1 (permalink)  
Antiguo 10/09/2008, 06:03
 
Fecha de Ingreso: enero-2005
Ubicación: Caracas Venezuela
Mensajes: 3
Antigüedad: 19 años, 9 meses
Puntos: 0
Problema con readfile() en PHP5

Friends, Entendidos en PHP4 y PHP5 y en temas de servidores, extiendo esta consulta porque ya creo que no es favorable darle tantas vueltas.

Estoy en proceso de migración de una web que esta en LAMP PHP4 a una LAMP PHP5 y tengo problemas con unas imágenes muy especiales que me conseguí en este servidor.

El caso es el siguiente:

http://www.notodohoteles.com/es/img_art.php/60_up es una imagen leída con el siguiente código:

<?php

……..

readfile($archivo)

?>

y produce esa salida. Está comprobado que la ruta del archivo es correcta y toda la pre-programación anterior esta perfecta. El archivo esta alojado en el disco duro y no es una imagen guardad en BD. Por cierto las imágenes no tienen extensión en el servidor y no responde al menos bajo Windows al cambio de extensión a “.jpg” pero funcionan muy bien sin extensión en el viejo servidor.

Ahora en el servidor nuevo: http://test.notodohoteles.com/es/img_art.php/60_up la salida es exactamente le misma pero la interpretación que hace el servidor de la imagen cuando se muestra donde debería estar no es correcta. Me explico:

En http://www.notodohoteles.com/es/index.php?link1=articulos_ficha&id=33 se muestran las imágenes perfectamente al principio del artículo pero …
En http://test.notodohoteles.com/es/index.php?link1=articulos_ficha&id=33 no se muestran!.


El código HTML que muestra las imágenes en ambos casos es:

<center>
<font face="Verdana" size="2">
<a href="" target="_self">
<img border="0" src="/es/img_art.php/59_up"/>
</a>
<br/>
</font>
</center>


Por ultimo el código PHP que lee el archive y los escribe en el buffer es:

<?
// Script que permite llamar a las fotos comunes de articulos para mostrarlas en cada idioma para stats segmentadas
//
// Por Paco Fern�ndez - Junio de 2006
//
// LA LLAMADA A LA PIEZA SER� DEL TIPO:
// http://www.notodohoteles.com/webphp2007/es/img.php/2222_1.jpg

if(!$lg) $lg="es";

include $_SERVER['DOCUMENT_ROOT']."/admin/rutas_".$lg.".php";

// Queremos el nombre de archivo, el idpieza y la extensi�n del archivo
$archivo = $var_url=$_SERVER['PATH_INFO']; // Tomamos la ruta de acceso

// Sacamos nombre archivo
// $array_url=explode('/',$var_url); // Nos quedamos con lo de despu�s del "pieza.php/" que es el nombre de archivo
// $archivo=$array_url[1];

// Sacamos extensi�n para cabecera
$array_ext=explode('.',$archivo);
$ext=$array_ext[1];


if( $peso = @filesize($ruta_img_art.$archivo) ) // Si existe incremento estad�sticas y cargo el archivo
{

// Saco cabecera seg�n la extensi�n y su peso
header("Accept-Ranges: bytes");
header("Content-Length: ".$peso);
if($ext=="gif") header("Content-type: image/gif");
if($ext=="jpg") header("Content-type: image/jpeg");


if ( @readfile($ruta_img_art.$archivo) ){
echo "Error al leer el archivo ".$ruta_img_art.$archivo;
exit;
} // cargo el archivo





}
else header('HTTP/1.0 404 Not Found'); // Si no existe doy salida de Not Found
?>


Dejo esto así de abierto por si alguien conoce un problema similar y sabe la solución, cualquier pregunta estaré dispuesto a investigar y responder.

Un saludo y gracias de antemano

Jose Antonio Pio Gil
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:07.