Cómo subir archivos a un servidor usando php

Home / Uncategorized / Cómo subir archivos a un servidor usando php

La subida de archivos a un servidor se compone de dos partes:

  1. El envío del archivo
  2. El procesamiento una vez que se recibió

La primera parte es simplemente un poco de HTML. El elemento que se utiliza para indicar que se va a querer enviar un archivo es file:

<input type="file" name="archivo">

Algunos detalles importantes:

El formulario que contiene una subida de archivos debe llevar un atributo que generalmente se ignora: enctype (Tipo de codificación).

Además, debe indicarse el tamaño máximo del archivo a enviar (mediante un campo oculto).

Ejemplo:

<form enctype="multipart/form-data" action="procesarArchivo.php" method="POST">
    <!-- El nombre de este campo siempre debe ser MAX_FILE_SIZE -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    Enviar este fichero: <input name="archivo" type="file" />
    <input type="submit" value="Subir" />
</form>

Del lado del servidor hay algunas configuraciones que deben ser tenidas en cuenta (Valores del archivo php.ini):

file_uploads = On
upload_max_filesize = XX
post_max_size = XX

Obviamente, para que todo funcione, el archivo que se quiere subir debe ser de, a lo sumo, el tamaño indicado.

Luego, dentro del script que recibe el POST (por ejemplo procesarArchivo.php) contamos con el array $_FILES.

Este array asociativo define un elemento por cada input de tipo file que se haya declarado en el formulario.

El contenido de cada elemento es, a su vez, un array asociativo que contiene información sobre el archivo recibido (name, tmp_name, size, type, etc…).

El valor de $_FILES[‘archivo’][‘name’] es el nombre original del archivo (Es decir, el nombre que el archivo tiene en la computadora desde donde se realiza la subida).

Es importante entender que todos los archivos subidos van a parar a un directorio temporal, es responsabilidad del programador sacarlos de ahí (y probablemente renombrarlos) para que estén disponibles, para ello se cuenta con la función move_uploaded_file.

Con este mecanismo se pueden subir fotos de usuarios, documentos y demás archivos. Pero cuidado… dónde se almacenen los archivos y las validaciones sobre su contenido son temas muy importantes para proteger a tu aplicación.

¿Te quedó alguna duda sobre cómo subir archivos con PHP? ¡Espero tus comentarios!

mchojrin

CEO at Leeway
Mauro es Lic. en Ciencias de la Computación.
Su carrera como docente de programación se inició en el año 1997 en la Escuela Técnica ORT.
Actualmente coordina el desarrollo de proyectos web en Leeway y los cursos dictados en la Leeway Academy

One Comment

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *