Foros del Web » Programando para Internet » PHP »

Error en upload

Estas en el tema de Error en upload en el foro de PHP en Foros del Web. amigasos, desde que el hostin cambio el php.ini me sale este error en los upload Warning: fread(): supplied argument is not a valid stream resource ...
  #1 (permalink)  
Antiguo 20/02/2006, 19:33
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 20 años, 11 meses
Puntos: 0
Error en upload

amigasos, desde que el hostin cambio el php.ini

me sale este error en los upload

Warning: fread(): supplied argument is not a valid stream resource in /var/www/html/virtual/chorosdelpuerto.com/www/admin/admin-noticias.php on line 195

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/virtual/chorosdelpuerto.com/www/admin/admin-noticias.php on line 196

Warning: fread(): supplied argument is not a valid stream resource in /var/www/html/virtual/chorosdelpuerto.com/www/admin/admin-noticias.php on line 220

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/virtual/chorosdelpuerto.com/www/admin/admin-noticias.php on line 221
  #2 (permalink)  
Antiguo 20/02/2006, 20:55
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Muestra el código que usas para el upload, especialmente las líneas de los errores
  #3 (permalink)  
Antiguo 21/02/2006, 06:32
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 20 años, 11 meses
Puntos: 0
codigo upload

/////////////////////INICIO UPLOAD//////////////////////INICIO UPLOAD/////////////////////////
//comienza a validad extension
$extension = explode(".",$userfile_name);
if ($extension[1] != $ext_foto1 && $extension[1] != $ext_foto2 && $extension[1] && $ext_foto3 ){
echo "<script>alert('Error: la Extension No es Valida -- ".$extension[1]."')</script>";
echo "<script>javascript:history.back(1)</script>";
break;
}//termina de validar extension
//comienza a validad el tamaño del archivo
if($userfile_size > "$peso_imagen"){
echo "<script>alert('Error: el Archivo Supera el Tamaño en Kb Permitido ')</script>";
echo "<script>javascript:history.back(1)</script>";
break;
}
//finaliza la validacion del tamaño del archivo
$dir= "../" . $carpeta_imagenes; //carpeta IMAGENES
$nombre_new = $codigo_noticia . "a" . "." . $extension[1]; //nombre archivo nuevo
$v_userfile = $carpeta_imagenes . $nombre_new; //ruta de la imagen que se guardara en la base

$UPLOAD = fopen( $userfile, "r" );
$contents = fread( $UPLOAD,$userfile_size);
fclose( $UPLOAD );
$SAVEFILE = fopen($dir.$nombre_new, "wb" );
fwrite( $SAVEFILE, $contents,$userfile_size );
fclose( $SAVEFILE );
  #4 (permalink)  
Antiguo 21/02/2006, 06:48
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
A mi me parece que eso no es un upload, te dejo una FAQ del foro donde se indica como hacer un upload.

http://www.forosdelweb.com/showthrea...389#post249389
  #5 (permalink)  
Antiguo 21/02/2006, 07:37
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 20 años, 11 meses
Puntos: 0
que extraña respuesta..si el script funciona bien, el problema es que el hosting cambio register_globals a Off y quedo la escoba
  #6 (permalink)  
Antiguo 21/02/2006, 09:16
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Cita:
Iniciado por giotari
que extraña respuesta..si el script funciona bien,
No es normal ver ese codigo para upload, imagino que tomas el archivo tmp, lo lees y lo grabas con otro nombre en el directorio en donde desea dejarlo. La primera impresión que tuve es que pretendías leerlo desde el cliente.

Cita:
Iniciado por giotari
el problema es que el hosting cambio register_globals a Off y quedo la escoba
Si el hosting cambió a register_globals=Off entonces las variables que recibias desde el formulario como: $nombre_var ahora deberás recibirlas : $_POST['nombre_var'] o $_GET['nombre_var'], segun uses post o get para transferir la informacion, respectivamente.
  #7 (permalink)  
Antiguo 21/02/2006, 10:16
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 20 años, 11 meses
Puntos: 0
probe con $_post y no me funciona el form es:

<form name="form1" method="post" action="admin-noticias.php?accion=guardar_noticia&tipo=new" enctype="multipart/form-data">
  #8 (permalink)  
Antiguo 21/02/2006, 10:24
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Es con mayúsculas, $_POST['nombre_var'], tal cual. Php es case sensitive tambien.
  #9 (permalink)  
Antiguo 21/02/2006, 11:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por giotari
que extraña respuesta..si el script funciona bien, el problema es que el hosting cambio register_globals a Off y quedo la escoba
Si te fijas en el script propuesto en las FAQ's que te remitieron .. lo que podrás observar a simple vista es el tratamiento de tus variables externas al script ..

PHP para "bien" o para "mal" es altamente configurable .. dicha configuración afecta en gran medida a como tal código concreto se va a comportar. Así que -nunca- debes afirmar que por qué tu código X te funcione en el servidor Y con tal configuración que este tenga .. ha de comportarse igual en servidor Z .. para eso debes conocer la configuración de PHP del servidor que uses y conocer tu código que tipo de limitaciones podría tener en función de la configuración que uses.

Fijate que usa $_FILES .. que no lee el archivo con fread() sino que usa la función move_uploaded_file() que es la más segura y permitida para acceder a archivos desde donde PHP los deja temporalmente cuando suben ..

Te recomiendo también leer la documentación al respecto sobre el "Upload" de archivos (ahí veras los mismos ejemplos):

http://www.php.net/manual/en/features.file-upload.php

Y también esta FAQ sobre "register_globals" y en que te va afectar (ya de hecho lo está haciendo) a tus aplicaciones:
http://www.forosdelweb.com/showthrea...989#post238989

Por otro lado podrías tener también problemas de acceso a archivos por permisos. Justamente hacer un "fopen()" directo al "/tmp" no está permitido por restricciones tipo "open_base_dir" pero si que es permitido por la función: move_uploaded_file() que está diseñada para tal fin.

Un saludo,
  #10 (permalink)  
Antiguo 21/02/2006, 11:56
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 20 años, 11 meses
Puntos: 0
ok gracias ya me funciono, ...
  #11 (permalink)  
Antiguo 21/02/2006, 12:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por giotari
ok gracias ya me funciono, ...
Estaría bueno que indicases que solución tomastes .. así le servirá a otro compañero que se encuentre con una situación similar.

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 22:36.