Foros del Web » Programando para Internet » PHP »

Problema lectura fichero temporal

Estas en el tema de Problema lectura fichero temporal en el foro de PHP en Foros del Web. Hola, alguien sabe por qué falla el siguiente código? Estoy creando un fichero temporal, introduciendole contenidoy cerrándolo. Posteriormente utrilizo el nombre temporal generado para leer ...
  #1 (permalink)  
Antiguo 18/05/2012, 03:26
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Pregunta Problema lectura fichero temporal

Hola,

alguien sabe por qué falla el siguiente código? Estoy creando un fichero temporal, introduciendole contenidoy cerrándolo.

Posteriormente utrilizo el nombre temporal generado para leer el contenido, y en el parámetro del tamaño que deseo leer le indico que el tamaño del fichero. Me dice que hay error porque el tamaño tiene que ser mayor que 0.

Código PHP:
$temp_name tempnam(sys_get_temp_dir(), "nombreAleatorio");
$fp fopen($temp_name'wb');
            
fwrite($fp,  "PROBANDO");

fclose($fp);

$fp fopen($temp_name'wb');
            
echo 
fread($fpfilesize($temp_name)); //Aquí es donde dice que filsesize es 0

fclose($p); 
Gracias
  #2 (permalink)  
Antiguo 18/05/2012, 05:17
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Problema lectura fichero temporal

Fíjate bien que para leer el archivo tiene que ser rb no wb

Código PHP:
Ver original
  1. $fp = fopen($temp_name, 'rb');

Y arregla la ultima linea.

Código PHP:
Ver original
  1. fclose($fp);


Saludos.
  #3 (permalink)  
Antiguo 18/05/2012, 06:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Problema lectura fichero temporal

Uy! que despieste lo de la r...

Lo de la ultima linea es porque esa parte de lectura la tengo en otra función a la que le he devuelto el nombre del fichero temporal, y lo escribi a mano aquí.

Eso no ha arreglado el problema, el tamaño del fichero me sigue diciendo que es 0 :S

Gracias
  #4 (permalink)  
Antiguo 18/05/2012, 06:08
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Problema lectura fichero temporal

Pero si lo que quieres saber es el tamaño del fichero lo haces con

Código PHP:
Ver original
  1. echo filesize($temp_name);


Código PHP:
Ver original
  1. fread($fp, filesize($temp_name));
Esto es para leer el fichero no para saber el tamaño.
Saludos.
  #5 (permalink)  
Antiguo 18/05/2012, 06:36
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Problema lectura fichero temporal

Ya, ya, quiero leer el fichero entero, pero me esta fallando porque la funcion filesize me devuelve 0 :S... (El contenido que escribo en el fichero no es esa cadena, sino una respuesta de un seervicio Web que me devuelve un stream con el contenido del fichero, y eso me lo está devolviendo bien....)
  #6 (permalink)  
Antiguo 18/05/2012, 06:39
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Problema lectura fichero temporal

De hecho esa misma funcion me devuelve el tamaño correcto en la función en la que creo el fichero, pero en la función en la que devuelvo el path del fichero, me dice que el tamaño es 0. Por contra, si compruebo si existe el fichero me dice que sí, asi que no es que se borre el fichero al salir de la función, es como si se borrara su contenido, muy extraño :S
  #7 (permalink)  
Antiguo 18/05/2012, 06:42
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Problema lectura fichero temporal

Bueno, lo acabo de arreglar, aunque sigo sin saber qué estaba pasando... Gracias por el intento
  #8 (permalink)  
Antiguo 18/05/2012, 06:51
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Problema lectura fichero temporal

Es que tiene logica el error que te esta retornando y no es extraño.

Fijate que en principio abres el archivo y le agregas " PROBANDO "
Luego cierras el archivo y en el segundo bloque vuelves abrir el archivo como WB en modo de escritura esto provoca que el puntero vaya al principio del fichero y pase a longitud cero por tanto el error es logico.

en principio te comente que cambies en el segundo bloques el wb por rb



Saludos.
  #9 (permalink)  
Antiguo 18/05/2012, 07:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Problema lectura fichero temporal

Si si, el segundo 'wb' lo había cambiado ya antes por 'rb' lo cambie, eso fue un despiste!, quizás era por eso, porque ya no se la secuencia de pasos que he seguido.

Ahora ya funciona, muchas gracias! Voy a abrir otro hilo para preguntar otra cosa relacionada con ficheros, que no tiene mucho que ver con esto. GraciaS!

Etiquetas: fichero, lectura, temporal
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 14:10.