Cómo subir archivos a un servidor usando php

Inicio / Cómo hacer para... / 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

Hola! Soy Mauro Chojrin, estudié la Lic. en Ciencias de la Computación en la UBA.

Me desempeño como docente de programación desde el año 1997.

Pasé por diferentes instituciones (Escuela Técnica ORT, Digital House, EducacionIT, ITMaster, Escuela DaVinci entre otros).

Actualmente coordino el desarrollo de proyectos web en https://leewayweb.com y los cursos dictados en Leeway Academy

Un comentario

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.