Foros del Web » Programando para Internet » PHP »

Problema con imagenes embebidas en la base de datos

Estas en el tema de Problema con imagenes embebidas en la base de datos en el foro de PHP en Foros del Web. 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... ...
  #1 (permalink)  
Antiguo 16/04/2005, 18:52
 
Fecha de Ingreso: julio-2003
Mensajes: 132
Antigüedad: 20 años, 8 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.
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 00:24.