Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2005, 18:52
LastN
 
Fecha de Ingreso: julio-2003
Mensajes: 132
Antigüedad: 20 años, 9 meses
Puntos: 0
Mensaje Problema con imagenes embebidas en la base de datos

Hola a todos:
Tengo un problema que me tiene realmente desconcertado
Tengo una aplicacion en PHP desarrollada en windows que no me funciona en Linux...
Veamos el problema me ocurre a la Hora de gestionar las imagenes. Cuando subo la imagen y guardo en la base de datos la informacion binaria de la imgen, su tipo y tamaño, que necesito para visualizarla posterirormente.

En windows todo ok, pero en Linux (en el servidor de Explotacion) me ocurre algo raro:
El tamaño de a infor binaria y el que guardo sondiferetes y claro, la imagen no se muestra bien
veamos el codigo que empleo para mostrar la imgane es:

Código PHP:
   header("Content-Type: "$tipo ."\n");
   
header("Content-Transfer-Encoding: binary\n");
   
header("Content-length: " strlen($data) . "\n");
   print  
$data
siendo $tipo el tipo de la imagen y $data el contenido binario de la imagen

además incluyo el código con el que subo la imagen
Código PHP:
         ...
        
$nombre=$_FILES["userfile"]["name"];
        if(
strlen($nombre)>)
        {
            
$extensiones=array("jpg","jpeg","gif","png","bmp","ico");
            
$var explode(".","$nombre");
            
$num count($extensiones);
            
$valor $num-1;
            
$admitido=false;
            for(
$i=0$i<=$valor$i++)
            {
                if(
$extensiones[$i] == $var[1])
                {
                    
$admitido=true;//es una extension valida
                    
break;
                }
            }
            if (!
$admitido)
            {
                echo 
"extensión no valida";
                exit();
            }

            
$data "";
            
$userfile $_FILES['userfile']['tmp_name'];
            [
COLOR=Sienna]$tamano[/COLOR]=$_FILES["userfile"]["size"];
            if (
$tamano==0)
            {
                print 
"El tamaño de la imagen es 0 <br>"$redir;
                exit();
            }
            [
COLOR=Sienna]$tipo[/COLOR]=$_FILES["userfile"]["type"];

            
//abrir el archivo y guardarlo en $fp= file pointer
            
$fp fopen($userfile"rb");
            while(!
feof($fp))
            {
                
$data .= fread($fp1024);
            }
            
fclose($fp);

            
$data addslashes($data);
            [
COLOR=Sienna]$data [/COLOR] = addcslashes($data"\0");

        
        }
         ... 
como os digo este código va ok en windows pero en linux veo que $tamaño y strlen($data) no coinciden

¿A alguien se l eocurre alguna causa de esto?

un saludo y gracias de antemano.