Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/03/2006, 09:27
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
En lugar de:
$HTTP_POST_FILES["file"]["tmp_name"]

deberías usar:
$_FILES["file"]["tmp_name"]

Aquí:
$CopiarArchivo = move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$dir.$file_name);

además del problema con $HTTP_POST_FILES .. te referencias al nombre del archivo por $file_name .. cuando debería ser: $_FILES['file']['name'] (esto lo haces várias veces en el código .. revisalo).

Como te darás cuenta tienes "Mezclado" el uso de los arrays superglobales $_POST .. etc con los no superglobales: $HTTP_XXX_XXX y otros accesos "globales" ($variable ...) que son externas .. Si no usas para todo los arrays superglobales tendrás problemas con "register_globals" a OFF (además de los problemas de seguridad originados por eso mismo que tenías antes .. uses register_globals a ON u a OFF).

Por otro lado .. no registras en tus BBDD el formato MIME del archivo .. haces un juego con la extensión del archivo que puede no coincidir con el formato MIME del archivo que asegura fielmente que el archivo es del tipo que dice ser su extensión (esto es por tu seguridad .. para que no te suban un ".exe" camuflado bajo un nombre ".txt" por ejemplo ..). Usa la variable: $_FILES['file']['type'] ... No te bases en la extensión del nombre del archivo.

El "peso" del archivo también lo tienes (en bytes) directamente en:
$_FILES['file']['size'] .. para que no tengas que usar filesize() que por otro lado por tema de "permisos" no siempre vas a poder usar esa función para obtener esos datos directamente desde donde PHP almacena temporalmente los archivos que subes por HTTP (como lo haces ahora).

Un saludo,