Foros del Web » Programando para Internet » PHP »

Problemas al subir archivos mediante php

Estas en el tema de Problemas al subir archivos mediante php en el foro de PHP en Foros del Web. Tengo problemas al subir ficheros mediante php...mi codigo por el lado del cliente es el siguiente...(el nombre de este archivo es "subirinfo.htm") <form enctype="multipart/form-data" action="recibe.php" ...
  #1 (permalink)  
Antiguo 07/09/2005, 15:53
 
Fecha de Ingreso: septiembre-2005
Mensajes: 4
Antigüedad: 12 años, 3 meses
Puntos: 0
Problemas al subir archivos mediante php

Tengo problemas al subir ficheros mediante php...mi codigo por el lado del cliente es el siguiente...(el nombre de este archivo es "subirinfo.htm")

<form enctype="multipart/form-data" action="recibe.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Archivo: <input name="archivo" type="file">
<input type="submit" value="Enviar archivo">
</form>

y el script que deberia copiar el archivo es el siguiente..(el nombre de este archivo es: "recibe.php")..

<?php
print ("Procesando..");
$extension = explode(".",$HTTP_POST_FILES['archivo']['name']);
$num = count($extension)-1;
print("<br>Nombre original: ".$HTTP_POST_FILES['archivo']['name']);
print("<br>Nombre temporal: ".$HTTP_POST_FILES['archivo']['tmp_name']);
print("<br>Peso del archivo: ".$HTTP_POST_FILES['archivo']['size']);
if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name']))
{ print("<br>el archivo esta en el servidor");
if(move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'], "/var/www/html/cargados".$HTTP_POST_FILES['archivo']['name']))
{ print("<br>Archivo copiado correctamente...!!!");
}
else
{ print("<br>El archivo no se pudo copiar...!!!");
}
}
else
{ print("<br>el archivo no esta en el servidor");
}
?>

cuando envio un archivo me manda lo siguiente: (ej: mi archivo es Reloj.zip)
Procesando..
Nombre original: Reloj.zip
Nombre temporal: /tmp/php530D2
Peso del archivo: 5593
el archivo esta en el servidor
El archivo no se pudo copiar...!!!

ya cheque los permisos sobre el direcotio "/var/www/html/cargados" y esta todo bien ahi porque su valor es 777..y la verdad no se en donde pueda estar el error

la version (de php) que estoy ocupando es: php-4.3.9-3 y el apache es: httpd-2.0.54-1
y mi servidor esta en el SO "fedora core 3"

La neta les agradeceria muchisimo que me ayudaran..

el_kadur
  #2 (permalink)  
Antiguo 07/09/2005, 16:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Usa preferentemente el array $_FILES según describe la documentación oficial de PHP al respecto:

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

aquí:
"/var/www/html/cargados".$HTTP_POST_FILES['archivo']['name']))

te falta el /
Código PHP:
"/var/www/html/cargados/".$HTTP_POST_FILES['archivo']['name'])) 
sino .. una ruta sería por ejemplo (sin el /):
/var/www/html/cargadosUnarchivo.jpg

lo cual no existe como veras ...

También ten presente un poco de seguridad más .. no te bases en la extensión de un archivo por su nombre ni menos en que sólo tenga un punto en su nombre .. imagina por ejemplo nombres de archivos tipo nose.jpg.exe .. Basate en el formato MIME del archivo lo cual puedes obtener en: $_FILES['archivo']['type']


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