Upload de archivos con PHP
Una de las cosas que más se utilizan cuando hacemos páginas dinámicas son los formularios de subida de archivos. Aquí os voy a explicar las cosas necesarias para hacer un uploader sencillo.
Creamos un archivo llamado upload.php que contendrá el formulario y el código php que se encargará de este proceso.
La parte del formulario puede ser así:
Un fallo muy común es olvidar incorporar el atributo enctype al formulario, que para subida de archivos es obligatorio, ya que el envío del post debe ser codificado, por tanto no hay que olvidarse de colcar enctype="multipart/form-data" en el formulario.
Una vez que tenemos el formulario sólo hay que poner la parte de código PHP que se encargará de copiar el archivo.
-
if($HTTP_POST_POST['submit']){
-
//datos del arhivo
-
$nombre_archivo = $HTTP_POST_FILES['archivo']['name'];
-
$tipo_archivo = $HTTP_POST_FILES['archivo']['type'];
-
$tamano_archivo = $HTTP_POST_FILES['archivo']['size'];
-
//extension
-
$maximo=1000000; //tamaño máximo en bytes
-
//compruebo si las caracteristicas del archivo son las que deseo
-
if ($tamano_archivo<=$maximo) {
-
echo 'El archivo ha sido copiado correctamente';
-
}
-
else{
-
echo 'Error: el archivo no ha podido ser copiado';
-
}
-
}
-
else{
-
}
-
}
En este ejemplo hemos llamado a las variables utilizando $HTTP_POST_FILES para que sea compatible con la configuración register_globals OFF del php.ini (Ya hablaré de esto otro día).
Si tienes la versión de PHP 4.2.0 o superior podrás utilizar las superglobales de esta forma $_FILES.
Por último debemos crear una carpeta llamada "archivos" con permisos de escritura. Si tenemos un servidor LINUX pondremos CHMOD 777
A continuación pongo el código completo con superglobales.
Salu2
-
<?php
-
if($_POST['submit']){
-
//datos del arhivo
-
$nombre_archivo = $_FILES['archivo']['name'];
-
$tipo_archivo = $_FILES['archivo']['type'];
-
$tamano_archivo = $_FILES['archivo']['size'];
-
//extension
-
$maximo=1000000; //tamaño máximo en bytes
-
//compruebo si las caracteristicas del archivo son las que deseo
-
if ($tamano_archivo<=$maximo) {
-
$info='El archivo ha sido copiado correctamente';
-
}
-
else{
-
$info='Error: el archivo no ha podido ser copiado';
-
}
-
}
-
else{
-
$info='Error: el archivo supera el tamaño máximo permitido ('.$maximo.' bytes)';
-
}
-
}
-
?>
-
<html>
-
<head>
-
<title>Upload de archivos con PHP</title>
-
</head>
-
<body>
-
<form action="upload.php" enctype="multipart/form-data" method="post">
-
<input name="archivo" type="file"><br>
-
<input name="submit" type="submit" value="Enviar">
-
</form>
-
</body>
-
</html>

[...] otro día comentaba como hacer un upload de archivos, hoy vamos a ver como podemos descargar esos archivos, forzando la descarga y además como podemos [...]
[...] un ejemplo para redimensionar una imagen jpeg con la librería GD que ha sido subida mediante un upload de archivos. El script redimensionará la imagen con a un ancho máximo de 200 píxeles y la copiará a la [...]
Hola David..muchas gracias por el codigo…me ha servido de mucho..recien empiezo en PHP..muchas gracias, estare revisando tus otros articulos…t pasaste…