Foros del Web » Programando para Internet » PHP »

Problema con filesize

Estas en el tema de Problema con filesize en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema: Código PHP: $barra = stripslashes ( $ruta_imagen );      $tamano =@ filesize ( $barra ); //devuelve el tamaño de la imagen  el problema es que ...
  #1 (permalink)  
Antiguo 25/07/2007, 07:25
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Problema con filesize

Hola, tengo el siguiente problema:

Código PHP:
$barra=stripslashes($ruta_imagen);
    
$tamano=@filesize($barra);//devuelve el tamaño de la imagen 

el problema es que localmente filesize funciona correctamente, pero en el servidor no, he probado hacer un echo tamano; y no devuelve nada. ¿Alguien puede decirme por qué?

Gracias y saludos!!!

Última edición por zaida; 26/07/2007 a las 01:39
  #2 (permalink)  
Antiguo 25/07/2007, 07:33
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: Problema con filesize

Estas proporcionando la ruta correcta?

Saludillos.
  #3 (permalink)  
Antiguo 26/07/2007, 01:38
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

Hola:

Si lo he comprobado y la ruta es la correcta.
Saludos
  #4 (permalink)  
Antiguo 26/07/2007, 02:58
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

He probado a hacerlo así:

Código PHP:
$tamano0=fopen($barra,'w+');
    
$tamanofilesize($barra);
    echo 
$tamano
Pero me devuelve 0, por tanto está mal, alguien puede ayudarme?
Gracias y saludos
  #5 (permalink)  
Antiguo 26/07/2007, 03:41
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

hola de nuevo:

he probado a hacer esto:

Código PHP:
$barra=stripslashes($ruta_imagen);
echo 
$barra;
echo 
"<br>";
$archivo=fopen($barra,'r');
print_r($archivo);
echo 
"<br>";
$tamano=filesize($archivo);
echo 
"tamaño";
echo 
$tamano;
echo 
"<br>"
y me devuelve este error:

Warning: filesize(): Stat failed for Resource id #2 (errno=2 - No such file or directory) in .....

y sigue sin imprimir $tamano

¿Por que puede darme este error?-->la imagen si existe en el directorio...

gracias, un saludo

Última edición por zaida; 26/07/2007 a las 05:45
  #6 (permalink)  
Antiguo 26/07/2007, 04:47
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

He seguido haciendo pruebas y he comprobado que ésto tampoco me funciona en el servidor:

Código PHP:
$size=getimagesize($barra); 
Tampoco me devuelve ningún error.
¿Alguien sabe por qué?
Saludos
  #7 (permalink)  
Antiguo 26/07/2007, 04:55
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Problema con filesize

La ruta de la imagen debe ser absoluta (no tiene que ser una url)
Si no lo estas haciendo así, prueba con eso.
Saludos!
  #8 (permalink)  
Antiguo 26/07/2007, 04:59
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

La ruta que estoy recogiendo es la que el usuario elige localmente (elije una imagen desde un input file), por lo tanto será c:/........

Saludos
  #9 (permalink)  
Antiguo 26/07/2007, 05:06
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Problema con filesize

Asumo que lo que sucede es que subes una imagen a través de un formulario al servido

Si quieres hacer comprobaciones de la imagen antes de guardarla definitivamente en el servidor (por ej con getimagesize) tienes que trabajar con el array $_FILES (no utilizas ruta) de lo contrario tienes que trabjar con la imagen alojada en el servidor, y la ruta sera la absoluta de la misma en el servidor (no en la pc del usario)

Espero haberte ayudado un poco
Saludos
  #10 (permalink)  
Antiguo 26/07/2007, 05:15
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

¿tienes alguna idea de porque filesize funciona de manera local y no en el servidor? Me pasa lo mismo con getimagesize.

De todas formas probaré lo que me dices con $_FILE

Saludos y gracias
  #11 (permalink)  
Antiguo 26/07/2007, 05:24
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

Estoy probando lo del $_FILES de ésta forma:
Código PHP:
    $campo=$_FILES['campo_foto']['name'];
    echo 
$campo
campo_foto es el nombre del campo file, no me imprime nada en el echo, lo estoy haciendo bien?

Saludos
  #12 (permalink)  
Antiguo 26/07/2007, 05:32
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

Lo que recojo del examinar lo envío por GET por lo tanto creo que no voy a poder utilizar el $_FILES por eso no me funciona.
  #13 (permalink)  
Antiguo 27/07/2007, 02:02
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

¿Alguien puede darme alguna idea?
  #14 (permalink)  
Antiguo 27/07/2007, 16:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema con filesize

Para enviar un archivo solo es posible hacerlo por POST, y tu formulario lo tienes que enviar con el encoding multiple (enctype="multipart/form_data"). Luego para hacer el filesize necesitas copiar la imagen a una carpeta local en el servidor y de ahi leerla.

Saludos.
  #15 (permalink)  
Antiguo 30/07/2007, 04:54
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

Gracias GatorV por tu respuesta:
He conseguido hacer el siguiente código, funciona todo correctamente, menos a la hora de visualizar las imágenes. Espero que podaís ayudarme por favor:

Código PHP:
<?php
session_start
();
$imagen_examinar=$HTTP_POST_FILES['foto']['name'];
  if(
is_uploaded_file($HTTP_POST_FILES['foto']['tmp_name']))
  {
//Se ha añadido la foto a tmp
    
$size=$HTTP_POST_FILES['foto']['size'];//recogemos el tamaño de la foto
    
$foto=$HTTP_POST_FILES['foto']['tmp_name'];//recogemos el tmp de la foto
    
if($size==0)//Validamos si la imagen es igual a 0
    
{//La imagen está dañada
      
$x=0;
      
$error=2;//la imagen está dañada
      
$_SESSION['foto']=$imagenes;//recogemos la sesión en $imágenes
      
while($imagenes[$x]!=NULL)//en el caso de que hubiera imágenes visualizándose se siguen mostrando
      
{
        
$foto=@getimagesize($imagenes[$x]);//hacemos el getimagesize de las fotos que están en sesión
        
$ancho=60;
        
$alto[$x]=$foto[1]/($foto[0]/$ancho);
        
$x++;
      }
      
$popo=$_SESSION['foto'];//guardamos la sesión en $popo para mostrala
    
}
    if(
$size >&& $size<2000)//Validamos que la imagen sea mayora que 0 y menor que 2000kb
    
{
      if(
$imagen_examinar!=NULL)//Si lo que recogemos por post es distinto de null
      
{
        
$i=0;
        
$x=0;
        
$w=0;
        
$m=0;
        if(
$_SESSION['foto']==NULL)//si la sesión no existe, entra por primera vez.
        
{
          
$foto=getimagesize($HTTP_POST_FILES['foto']['tmp_name']);//hacemos el getimagesize de la imagen tmp(temporal)
          
$rut=array();
          
$rutimagen[0]=$imagen_examinar;
          
$_SESSION['foto']=$rutimagen;//guardamos la sesión en $rutimagen.
          
$popo=$_SESSION['foto'];//la recogemos en $popo para visualizarla.
          
$ancho=60;//ancho fijo
          
$alto[0]=$foto[1]/($foto[0]/$ancho);//ancho variable.
        
}
        else
//entra por segunda vez, la sesión existe
        
{
          
$fotos=$_SESSION['foto'];
          
$foto=@getimagesize($HTTP_POST_FILES['foto']['tmp_name']);
          if(
$foto==true)//La imagen no está dañada
          
{
            
$num=count($fotos);
            
$rutimagen=$fotos;
            
$rutimagen[$num]=$imagen_examinar;
            
$existe=array_unique($rutimagen);//buscamos si existe la imagen y si está repetida borramos
            
$_SESSION['foto']=$existe;//metemos $existe en sesión
            
if($rutimagen!=$existe)//si el primer array es distinto del segundo la imagen existe
            
{
              
$d=0;
              
$error=1;//La imagen existe.
              
echo "la imagen existe";
              
$imagenes4=$_SESSION['foto'];
              while(
$imagenes4[$d]!=NULL)
              {
                
$foto=getimagesize($imagenes4[$d]);
                
$ancho=60;
                
$alto[$d]=$foto[1]/($foto[0]/$ancho);
                
$d++;
              }
              
$popo=$_SESSION['foto'];
            }
            else
// no existe la imagen, por lo que la agregamos
            
{
              
$_SESSION['foto']=$existe;
              
$popo=$_SESSION['foto'];  
              
$nueva_imagen=$_SESSION['foto'];
              while(
$nueva_imagen[$x]!=NULL)
              {
                
$foto=@getimagesize($nueva_imagen[$x]);
                
$ancho=60;
                
$alto[$x]=$foto[1]/($foto[0]/$ancho);
                
$x++;
              }
              
$popo=$_SESSION['foto'];//se guarda la sesión en $popo
            
}

          }
        }
      }
    }
    if(
$size >2000)//La imagen supera el tamaño permitido
    
{
      
$s=0;
      
$error=3;//La imagen supera el tamaño permitido
      //echo "La imagen supera el tamaño permitido";
      
$imagenes3=$_SESSION['foto'];//Las demás fotos se siguen visualizando.
     
while($imagenes3[$s]!=NULL)
      {
        
$foto=@getimagesize($imagenes3[$s]);
        
$ancho=60;
        
$alto[$s]=$foto[1]/($foto[0]/$ancho);
        
$s++;
      }
      
$popo=$_SESSION['foto'];//se guarda la sesión en $popo
    
}
  }

?>
Las visualizo así;

Código HTML:
<img src="<?php echo $popo[$i]; ?>" width="<?php $ancho; ?>" height="<?php echo $alto; ?>" > 
¿Podeís decirme porqué no se muestran las imágenes?

Muchas gracias y saludos!!!
  #16 (permalink)  
Antiguo 31/07/2007, 06:51
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

¿Nadie puede darme una idea de lo que estoy haciendo mal?

saludos!!!
__________________
-- Cuando sientas miedo y no tengas un hombro dónde apoyarte, no te hundas en la soledad, pues si lo haces fracasarás --
  #17 (permalink)  
Antiguo 11/09/2007, 07:06
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con filesize

Sigo con el mismo problema, localmente funciona todo correctamente, pero al subirlo al servidor las imágenes no se visualizan.

¿Podeis ayudarme?
Saludos y muchas gracias
__________________
-- Cuando sientas miedo y no tengas un hombro dónde apoyarte, no te hundas en la soledad, pues si lo haces fracasarás --
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 17:56.