SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: zaida20 en Jueves 26 de Julio de 2007, 10:12

Título: Problema Con Filesize
Publicado por: zaida20 en Jueves 26 de Julio de 2007, 10:12
Hola, tengo el siguiente problema:

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


He comprobado que la ruta es la correcta, 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!!!  :hola:
Título: Re: Problema Con Filesize
Publicado por: F_Tanori en Jueves 26 de Julio de 2007, 12:03
Hola,


Quitale la @ para ver si te muestra el mensaje de error


Saludos
Título: Re: Problema Con Filesize
Publicado por: zaida20 en Jueves 26 de Julio de 2007, 12:11
hola de nuevo:

he probado a hacer esto:

Código: Text
  1. $barra=stripslashes($ruta_imagen);
  2. echo $barra;
  3. echo "<br>";
  4. $archivo=fopen($barra,'r');
  5. print_r($archivo);
  6. echo "<br>";
  7. $tamano=filesize($archivo);
  8. echo "tamaño";
  9. echo $tamano;
  10. echo "<br>";
  11.  

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
Título: Re: Problema Con Filesize
Publicado por: F_Tanori en Jueves 26 de Julio de 2007, 12:35
ahh ... ok

Cita de: "http://www.php.net/function.filesize"
filesize

(PHP 3, PHP 4, PHP 5)
filesize -- Obtiene el tamaño del archivo
Descripción
int filesize ( string nombre_archivo )

En el segundo codigo estas colocando un...

Cita de: "http://www.php.net/function.filesize"
fopen

(PHP 3, PHP 4, PHP 5)
fopen -- Abre un archivo o URL
Descripción
resource fopen ( string nombre_archivo, string modo [, bool usar_ruta_inclusion [, resource contexto_z]] )

<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><code><font color="#000000">

<font color="#0000BB">$barra</font><font color="#007700">=</font><font color="#0000BB">stripslashes</font><font color="#007700">(</font><font color="#0000BB">$ruta_imagen</font><font color="#007700">);
echo </font><font color="#0000BB">$barra</font><font color="#007700">;
echo </font><font color="#DD0000">"<br>"</font><font color="#007700">;
</font><font color="#0000BB">$archivo</font><font color="#007700">=</font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#0000BB">$barra</font><font color="#007700">, &</font><font color="#FF8000">#39; r');
</font><font color="#0000BB">print_r</font><font color="#007700">(</font><font color="#0000BB">$archivo</font><font color="#007700">);
echo </font><font color="#DD0000">"<br>"</font><font color="#007700">;
</font><font color="#0000BB">$tamano</font><font color="#007700">=</font><font color="#0000BB">filesize</font><font color="#007700">(</font><font color="#0000BB">$archivo</font><font color="#007700">);
echo </font><font color="#DD0000">"tamaño"</font><font color="#007700">;
echo </font><font color="#0000BB">$tamano</font><font color="#007700">;
echo </font><font color="#DD0000">"<br>"</font><font color="#007700">;</font>
</font>
</code><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->

le estas pasando como parametro $archivo en lugar de $barra

el archivo se crea en ese mismo proceso? o ya existe permanentemente?

Saludos
Título: Re: Problema Con Filesize
Publicado por: zaida20 en Jueves 26 de Julio de 2007, 12:53
Te cuento, recibo $ruta_imagen de un campo y botón examinar. Para visualizar una imagen antes de  guardarla en sesión compruebo el tamaño mediante filesize.

Código: Text
  1.   &#036;barra=stripslashes(&#036;ruta_imagen);//quita las barras que se duplican en la ruta
  2.   &#036;tamano=@filesize(&#036;barra);//devuelve el tamaño de la imagen
  3.   echo &#036;tamano;
  4.  

$tamano no me recoge nada. Respecto a lo que me preguntas el archivo lo creo en ese momento y si cumple el tamaño se guarda en sesión.


Saludos y gracias
Título: Re: Problema Con Filesize
Publicado por: zaida20 en Jueves 26 de Julio de 2007, 12:57
Otra cosa más:

He probado a cambiar $archivo por $barra

   
Código: Text
  1. &#036;barra=stripslashes(&#036;ruta_imagen);//quita las barras que se duplican en la ruta
  2.   echo &#036;barra;//imprime la ruta correctamente
  3. echo &#34;&#60;br&#62;&#34;;
  4. &#036;archivo=fopen(&#036;barra, 'r');
  5. print_r(&#036;archivo);//devuelve resource #2
  6. echo &#34;&#60;br&#62;&#34;;
  7. &#036;tamano=filesize(&#036;barra);
  8. echo &#34;tamaño&#34;;//devuelve un 0
  9. echo &#036;tamano;
  10. echo &#34;&#60;br&#62;&#34;;
  11.  
Título: Re: Problema Con Filesize
Publicado por: zaida20 en Viernes 27 de Julio de 2007, 14:21
Creo haber encontrado algo para solucionarlo  :D  con $HTTP_POST_FILES['campo_foto']['name']; cuando lo consiga pondré el resultado por si a alguien le sirve.

Saludos!!! :hola:
Título: Re: Problema Con Filesize
Publicado por: Altareum en Viernes 27 de Julio de 2007, 17:37
Prová con $_FILES['campo_foto']['tmp_name'] directamente, esto accede directamente al archivo que envias por post, sin nececesidad de usar rutas.

Altareum.
Título: Re: Problema Con Filesize
Publicado por: zaida20 en Lunes 30 de Julio de 2007, 12:48
Gracias Altareum 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: Text
  1.  
  2. &#60;?php
  3. session_start();
  4. &#036;imagen_examinar=&#036;HTTP_POST_FILES['foto']['name'];
  5.   if(is_uploaded_file(&#036;HTTP_POST_FILES['foto']['tmp_name']))
  6.   {//Se ha añadido la foto a tmp
  7.     &#036;size=&#036;HTTP_POST_FILES['foto']['size'];//recogemos el tamaño de la foto
  8.     &#036;foto=&#036;HTTP_POST_FILES['foto']['tmp_name'];//recogemos el tmp de la foto
  9.     if(&#036;size==0)//Validamos si la imagen es igual a 0
  10.     {//La imagen está dañada
  11.       &#036;x=0;
  12.       &#036;error=2;//la imagen está dañada
  13.       &#036;_SESSION['foto']=&#036;imagenes;//recogemos la sesión en &#036;imágenes
  14.       while(&#036;imagenes[&#036;x]!=NULL)//en el caso de que hubiera imágenes visualizándose se siguen mostrando
  15.       {
  16.         &#036;foto=@getimagesize(&#036;imagenes[&#036;x]);//hacemos el getimagesize de las fotos que están en sesión
  17.         &#036;ancho=60;
  18.         &#036;alto[&#036;x]=&#036;foto[1]/(&#036;foto[0]/&#036;ancho);
  19.         &#036;x++;
  20.       }
  21.       &#036;popo=&#036;_SESSION['foto'];//guardamos la sesión en &#036;popo para mostrala
  22.     }
  23.     if(&#036;size &#62;0 && &#036;size&#60;2000)//Validamos que la imagen sea mayora que 0 y menor que 2000kb
  24.     {
  25.       if(&#036;imagen_examinar!=NULL)//Si lo que recogemos por post es distinto de null
  26.       {
  27.         &#036;i=0;
  28.         &#036;x=0;
  29.         &#036;w=0;
  30.         &#036;m=0;
  31.         if(&#036;_SESSION['foto']==NULL)//si la sesión no existe, entra por primera vez.
  32.         {
  33.           &#036;foto=getimagesize(&#036;HTTP_POST_FILES['foto']['tmp_name']);//hacemos el getimagesize de la imagen tmp(temporal)
  34.           &#036;rut=array();
  35.           &#036;rutimagen[0]=&#036;imagen_examinar;
  36.           &#036;_SESSION['foto']=&#036;rutimagen;//guardamos la sesión en &#036;rutimagen.
  37.           &#036;popo=&#036;_SESSION['foto'];//la recogemos en &#036;popo para visualizarla.
  38.           &#036;ancho=60;//ancho fijo
  39.           &#036;alto[0]=&#036;foto[1]/(&#036;foto[0]/&#036;ancho);//ancho variable.
  40.         }
  41.         else//entra por segunda vez, la sesión existe
  42.         {
  43.           &#036;fotos=&#036;_SESSION['foto'];
  44.           &#036;foto=@getimagesize(&#036;HTTP_POST_FILES['foto']['tmp_name']);
  45.           if(&#036;foto==true)//La imagen no está dañada
  46.           {
  47.             &#036;num=count(&#036;fotos);
  48.             &#036;rutimagen=&#036;fotos;
  49.             &#036;rutimagen[&#036;num]=&#036;imagen_examinar;
  50.             &#036;existe=array_unique(&#036;rutimagen);//buscamos si existe la imagen y si está repetida borramos
  51.             &#036;_SESSION['foto']=&#036;existe;//metemos &#036;existe en sesión
  52.             if(&#036;rutimagen!=&#036;existe)//si el primer array es distinto del segundo la imagen existe
  53.             {
  54.               &#036;d=0;
  55.               &#036;error=1;//La imagen existe.
  56.               echo &#34;la imagen existe&#34;;
  57.               &#036;imagenes4=&#036;_SESSION['foto'];
  58.               while(&#036;imagenes4[&#036;d]!=NULL)
  59.               {
  60.                 &#036;foto=getimagesize(&#036;imagenes4[&#036;d]);
  61.                 &#036;ancho=60;
  62.                 &#036;alto[&#036;d]=&#036;foto[1]/(&#036;foto[0]/&#036;ancho);
  63.                 &#036;d++;
  64.               }
  65.               &#036;popo=&#036;_SESSION['foto'];
  66.             }
  67.             else// no existe la imagen, por lo que la agregamos
  68.             {
  69.               &#036;_SESSION['foto']=&#036;existe;
  70.               &#036;popo=&#036;_SESSION['foto'];  
  71.               &#036;nueva_imagen=&#036;_SESSION['foto'];
  72.               while(&#036;nueva_imagen[&#036;x]!=NULL)
  73.               {
  74.                 &#036;foto=@getimagesize(&#036;nueva_imagen[&#036;x]);
  75.                 &#036;ancho=60;
  76.                 &#036;alto[&#036;x]=&#036;foto[1]/(&#036;foto[0]/&#036;ancho);
  77.                 &#036;x++;
  78.               }
  79.               &#036;popo=&#036;_SESSION['foto'];//se guarda la sesión en &#036;popo
  80.             }
  81.  
  82.           }
  83.         }
  84.       }
  85.     }
  86.     if(&#036;size &#62;2000)//La imagen supera el tamaño permitido
  87.     {
  88.       &#036;s=0;
  89.       &#036;error=3;//La imagen supera el tamaño permitido
  90.       //echo &#34;La imagen supera el tamaño permitido&#34;;
  91.       &#036;imagenes3=&#036;_SESSION['foto'];//Las demás fotos se siguen visualizando.
  92.      while(&#036;imagenes3[&#036;s]!=NULL)
  93.       {
  94.         &#036;foto=@getimagesize(&#036;imagenes3[&#036;s]);
  95.         &#036;ancho=60;
  96.         &#036;alto[&#036;s]=&#036;foto[1]/(&#036;foto[0]/&#036;ancho);
  97.         &#036;s++;
  98.       }
  99.       &#036;popo=&#036;_SESSION['foto'];//se guarda la sesión en &#036;popo
  100.     }
  101.   }
  102.  
  103. ?&#62;
  104.  

Las visualizo así;
Código: Text
  1. &#60;html&#62;
  2. &#60;img src=&#34;&#60;?php echo &#036;popo[&#036;i]; ?&#62;&#34; width=&#34;&#60;?php &#036;ancho; ?&#62;&#34; height=&#34;&#60;?php echo &#036;alto; ?&#62;&#34; &#62;
  3. &#60;/html&#62;
  4.  

¿Podeís decirme porqué no se muestran las imágenes?

Muchas gracias y saludos!!! :hola:
Título: Re: Problema Con Filesize
Publicado por: Altareum en Lunes 6 de Agosto de 2007, 21:45
Pudiste solucionarlo ???

Altareum.
Título: Re: Problema Con Filesize
Publicado por: zaida20 en Jueves 9 de Agosto de 2007, 10:45
Hola Altareum

Sigo sin poder solucionarlo  :(

Saludos!!! :hola:
Título: Re: Problema Con Filesize
Publicado por: zaida20 en Martes 11 de Septiembre de 2007, 15:04
Hola, sigo sin poder solucionar éste problema, localmente funciona correctamente, pero al subirlo al servidor no se visualizan las imágenes.

¿Podeis ayudarme?
Saludos y muchas gracias  :hola:
Título: Re: Problema Con Filesize
Publicado por: zaida20 en Viernes 14 de Septiembre de 2007, 09:46
Por fin he conseguido que las imágenes se vean cuando lo subo al servidor!!!! :kicking:
Por si a alguien le sirve aqí dejo el código que he utilizado:

form.php
Código: Text
  1.       &#60;form name=&#34;anadir_blog&#34; method=&#34;post&#34; action=&#34;sentencia.php&#34; enctype=&#34;multipart/form-data&#34;&#62;
  2.                               &#60;input type=&#34;file&#34; name=&#34;foto&#34;&#62;&#60;/form&#62;
  3.  

sentencia.php

Código: Text
  1. &#60;a href=&#34;mostrar_blog.php&#34;&#62;ir a mostrar&#60;/a&#62;
  2. &#60;?php
  3. require'conexion.php';
  4. if(&#036;_FILES['foto']['name']!=NULL)
  5. {
  6.   &#036;uploadfile_temporal=&#036;_FILES['foto']['tmp_name'];
  7.   &#036;uploadfile_nombre=&#34;imagenes/&#34;.&#036;_FILES['foto']['name'];
  8.   &#036;ruta_foto='imagenes/'.&#036;_FILES['foto']['name'];//recoge la ruta de la imagen(carpeta y nombre)
  9.   if (is_uploaded_file(&#036;uploadfile_temporal))
  10.   {
  11.     move_uploaded_file(&#036;uploadfile_temporal,&#036;uploadfile_nombre);
  12.     &#036;sql=&#34;INSERT INTO img_blog(ruta)values('&#036;ruta_foto')&#34;;
  13.     if(mysql_query(&#036;sql,&#036;conexion))
  14.     {
  15.       echo &#34;bien&#34;;
  16.     }
  17.     else
  18.     {
  19.       echo &#34;mal&#34;;
  20.     }
  21.  
  22.   }
  23.   else
  24.   {
  25.     echo &#34;error al procesar foto&#34;.die();
  26.   }
  27. }
  28. else
  29. {
  30.   &#036;ruta_foto='-';
  31. }
  32.  

mostrar.php
Código: Text
  1. &#036;sql=&#34;select *from img_blog&#34;;//consulta de las imágenes que queremos visualizar
  2. &#036;consulta=mysql_query(&#036;sql,&#036;conexion)or die (mysql_error());
  3. &#036;i=0;
  4. if(&#036;consulta!=0)
  5. {
  6.   if(mysql_num_rows(&#036;consulta)!=NULL)
  7.   {
  8.     while(&#036;fila=mysql_fetch_array(&#036;consulta))
  9.     {
  10.       &#036;foto[&#036;i]=&#036;fila['ruta'];
  11.       &#036;i++;
  12.     }
  13.   }
  14. }
  15.  

Saludos!!! :hola: