Foros del Web » Programando para Internet » PHP »

Error con fread()

Estas en el tema de Error con fread() en el foro de PHP en Foros del Web. Amigos, necesito si pudieran darme una mano con esto. El tema es que me da el siguiente error sólo cuando le cargo archivos con una ...
  #1 (permalink)  
Antiguo 08/09/2005, 13:05
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
Error con fread()

Amigos, necesito si pudieran darme una mano con esto. El tema es que me da el siguiente error sólo cuando le cargo archivos con una alta cantidad de lineas (son archivos de texto), pero cuando no son muchas, anda bien (raro raro). El error que aparece es el siguiente:

Warning: fread(): supplied argument is not a valid stream resource in g:\archivos de programa\easyphp1-8\www\gestoria_aa\backup_recuperar.php on line 21

lo importante del archivo que me da el error es:

$archivo = $GLOBALS['HTTP_POST_FILES']['userfile']['tmp_name'];

$fp = fopen($archivo, 'rb');
$leido = fread($fp, filesize($archivo));

probé tambien de esta manera:

$archivo = $_FILES['userfile']['tmp_name'];
$size = $_FILES['userfile']['size'];

$fp = fopen($archivo, 'rb');
$leido = fread($fp, $size);

Pero es lo mismo, siempre el mismo error. A alguien se le ocurre que pueda ser ? me está volviendo loco y no puedo seguir con lo que estoy haciendo por estar estancado ahi.
Muchas gracias a todos.
__________________
Impala

Última edición por impala; 09/09/2005 a las 06:38
  #2 (permalink)  
Antiguo 09/09/2005, 07:31
 
Fecha de Ingreso: mayo-2005
Mensajes: 217
Antigüedad: 12 años, 6 meses
Puntos: 5
Tu error debe estar en la forma que cargas el archivo en $_FILES[]
yo cargue un archivo mediante un form y creo que lo lee bien, aqui te pongo
el codigo.
<?
$archivo_nombre = $_FILES['file']['tmp_name'];
$archivo_tamano = $_FILES['file']['size'];
if ($_FILES['file']['name']!=""){
$fp = fopen($archivo_nombre, 'rb');
$leido = fread($fp, $archivo_tamano);
fclose($fp);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form name="form1" enctype="multipart/form-data" method="post" action="">
<input type="file" name="file">
<input type="submit" name="Submit" value="Enviar">
</form>

</body>
</html>
  #3 (permalink)  
Antiguo 10/09/2005, 16:51
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
pero Klyfa, cual es la diferencia entre mi segundo ejemplo y el tuyo ???
__________________
Impala
  #4 (permalink)  
Antiguo 10/09/2005, 17:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Esto no debes usarlo:
$archivo = $GLOBALS['HTTP_POST_FILES']['userfile']['tmp_name'];
de hecho el array $_FILES ya es "superglobal" por si necesitabas eso ..

Revisa que valores tiens en $_FILES al subir tu archivo:

Código PHP:
echo "<pre>";
print_r($_FILES);
echo 
"</pre>"
Puede ser también que no tengas permisos para acceder a ese directorio temporal donde PHP deja todo archivo que suba por el (que define: upload_tmp_dir de tu php.ini).

Por seguridad y compatibilidad con otro tipo de configuración de PHP más restrictiva (ejemplo: modo SAFE MODE, restricciones de open_base_dir .. etc), mejor mueve tu archivo con move_uploaded_file() hacia un directorio "temporal" de tu sistio .. ahí lo abres como necesties (fopen() .. o file() simplemente ...etc). Y cuando termines tu proceso, si ya no requieres tu archivo "temporal" .. lo eliminas (unlink(el archivo que subistes))

Un saludo,
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 15:20.