Foros del Web » Programando para Internet » PHP »

subir archivos al servidor

Estas en el tema de subir archivos al servidor en el foro de PHP en Foros del Web. Hola a todos: Agradecedía si alguien puede orientarme en lo siguiente: Tengo el siguiente script para subir archivos al servidor: Código PHP: <?  if( $boton ...
  #1 (permalink)  
Antiguo 02/02/2008, 06:28
 
Fecha de Ingreso: agosto-2005
Mensajes: 70
Antigüedad: 18 años, 8 meses
Puntos: 0
subir archivos al servidor

Hola a todos:
Agradecedía si alguien puede orientarme en lo siguiente:


Tengo el siguiente script para subir archivos al servidor:

Código PHP:
<? 
if($boton) { 
   if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) { 
     if(
$HTTP_POST_FILES['archivo']['size'] < 500000) { 
         
copy($HTTP_POST_FILES['archivo']['tmp_name'], "documentos/".$HTTP_POST_FILES['archivo']['name']); 
           
$subio true
     } 
   } 


   if(
$subio) { 
      echo 
"El archivo subio con exito"
   } else { 
      echo 
"El archivo no cumple con las reglas establecidas"
   } 
   die(); 

?>
Código HTML:
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="form1"> 
  <p align="center">Archivo 
   <input name="archivo" type="file" id="archivo"> 
  </p> 
  <p align="center"><input name="boton" type="submit" id="boton" value="Enviar"></p> 
</form> 
El script lo he probado en local y me funciona perfectamente.
Lo he probado en otro servidor remoto que soporta php 5 y tambien funciona.

Pero en el servidor en el que necesito subir los archivos, me da el siguiente error en los ficheros log:

[client 80.34.59.60] PHP Notice: Undefined variable: boton in /var/www/vhosts/brenesygironella.com/httpdocs/pruebas/subir_archivos.php on line 12
[client 80.34.59.60] PHP Notice: Undefined variable: PHP_SELF in /var/www/vhosts/brenesygironella.com/httpdocs/pruebas/subir_archivos.php on line 30
[client 80.34.59.60] PHP Notice: Undefined variable: boton in /var/www/vhosts/brenesygironella.com/httpdocs/pruebas/subir_archivos.php on line 12, referer: http://www.brenesygironella.com/prue...r_archivos.php
[client 80.34.59.60] PHP Notice: Undefined variable: PHP_SELF in /var/www/vhosts/brenesygironella.com/httpdocs/pruebas/subir_archivos.php on line 30, referer: http://www.brenesygironella.com/prue...r_archivos.php.

Esto es porque la versión de este servidor es php4 y necesita algo más en el script ?.

Gracias de antemano.

Lyra:
  #2 (permalink)  
Antiguo 02/02/2008, 09:34
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: subir archivos al servidor

Parece problema de la directiva Register_Globals. Por seguridad se recomienda tener desactivada esta directiva para no acceder directamente a variables globales. Busca algo de información sobre esa directiva para entenderlo bien.

En el caso de tu script deberías llamar a ese tipo de variables a través del array superglobal que las contiene. Por ejemplo, en el caso de variables pasadas por POST (como formularios) tendrías que referenciarlas así: $_POST['variable']. Y con PHP_SELF lo mismo, pero dentro del array $_SERVER
  #3 (permalink)  
Antiguo 02/02/2008, 10:48
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 225
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: subir archivos al servidor

yo escribiria ese codigo asi


Código PHP:
<?  
if($_POST['boton']) {  
   if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {  
     if(
$HTTP_POST_FILES['archivo']['size'] < 500000) {  
         
copy($HTTP_POST_FILES['archivo']['tmp_name'], "documentos/".$HTTP_POST_FILES['archivo']['name']);  
           
$subio true;  
     }  
   }  


   if(
$subio) {  
      echo 
"El archivo subio con exito";  
   } else {  
      echo 
"El archivo no cumple con las reglas establecidas";  
   }  
   die();  
}  
?>

prueba asi pos lo demas es porq lo demas no son errores son mensajes de noticia eso se desactiva en el ini de php buscas algo q se llama show mensages esa vaina tu puedes decir q solo te muestre los errores nada mas pero al parecer esto parece q esta en una extranet si tienes acceso al ini de php hay lo puedes cambiar
  #4 (permalink)  
Antiguo 04/02/2008, 04:37
 
Fecha de Ingreso: agosto-2005
Mensajes: 70
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: subir archivos al servidor

Gracias Keysher, también a tí Talcual me ha sido de gran ayuda vuestra respuesta. Era eso, habia que llamar a las variables mediante los arrays superglobales.

Así que el código por si alguien quiere utilizarlo queda así:

Código PHP:
<?   
if($_POST['boton']) {   
   if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {   
     if(
$HTTP_POST_FILES['archivo']['size'] < 500000) {   
         
copy($HTTP_POST_FILES['archivo']['tmp_name'], "documentos/".$HTTP_POST_FILES['archivo']['name']);   
           
$subio true;   
     }   
   }   


   if(
$subio) {   
      echo 
"El archivo subio con exito";   
   } else {   
      echo 
"El archivo no cumple con las reglas establecidas";   
   }   
   die();   
}   
?>
Código HTML:
<form action="<?=($_SERVER['PHP_SELF'])?>" method="post" enctype="multipart/form-data" name="form1"> 
  <p align="center">Archivo 
   <input name="archivo" type="file" id="archivo"> 
  </p> 
  <p align="center"><input name="boton" type="submit" id="boton" value="Enviar"></p> 
</form> 

Saludos.
  #5 (permalink)  
Antiguo 05/10/2008, 09:51
Avatar de SpiderNet  
Fecha de Ingreso: agosto-2008
Ubicación: Venezuela
Mensajes: 29
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: subir archivos al servidor

Tengo instalado Apache 2.0, PHP 5 en mi PC. Verifique el php.ini y tengo configurado el upload....
file_uploads = On
upload_tmp_dir = "C:\Servidor\WEB\uploads\"
upload_max_filesize = 2M

Ejecuto el codigo y reviso el directorio que le indique al php.ini y no aparece nada.


Que hago???
  #6 (permalink)  
Antiguo 05/10/2008, 10:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: subir archivos al servidor

SpiderNet, el directorio del php.ini es temporal... no se guardan ahi en definitiva

realmente deberías revisar hacia donde guardas el archivo, con move_uploaded_file y no con copy (en tu código)

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 05/10/2008, 12:16
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: subir archivos al servidor

Un consejillo

no uses $HTTP_POST_FILES

usa mejor $_FILES
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:35.