Cómo cambiar el tamaño máximo de archivo en PHP: guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: «Archivo demasiado grande» — ¿un dolor familiar?

\n\n

¿Alguna vez intentaste subir a tu sitio web una foto en alta resolución, un video para tu blog o un archivo ZIP con documentos, y de repente te encontraste con el temido error: «Se ha superado el tamaño máximo de archivo permitido»? Si es así, no estás solo. En Stack Overflow, la pregunta «Change the maximum upload file size» tiene decenas de miles de visitas, lo que significa que cientos de miles de desarrolladores (desde principiantes hasta expertos) se han topado con este muro.

\n\n

En el portal educativo PythonLib no solo te enseñamos a copiar código, sino a entender cómo funciona todo por dentro. Hoy, de forma sencilla y con ejemplos prácticos, veremos cómo cambiar el límite de subida en PHP. Descubrirás dónde se esconden las configuraciones, por qué a veces no funcionan y cómo evitar los errores más comunes. ¡Vamos allá!

\n\n

¿Por qué PHP no permite subir archivos grandes?

\n\n

Por defecto, PHP es bastante modesto. Permite subir archivos de solo 2 megabytes (y en algunas versiones antiguas, incluso menos). Esto se hace por seguridad: imagina que un atacante suba un archivo de varios gigabytes a tu servidor y tumbe el sitio. Pero para tareas legítimas (como subir un portafolio o un video tutorial), esto es terriblemente insuficiente.

\n\n

¿De dónde viene el límite? La respuesta está en tres directivas principales de la configuración de PHP:

\n\n
    \n
  • upload_max_filesize — tamaño máximo de un solo archivo a subir.
  • \n
  • post_max_size — tamaño máximo de todos los datos enviados por POST (incluyendo archivos y campos de texto del formulario).
  • \n
  • max_execution_time — tiempo que PHP puede dedicar a ejecutar el script (subir un archivo grande puede llevar minutos).
  • \n
\n\n

Si solo aumentas upload_max_filesize pero te olvidas de post_max_size, la subida igualmente fallará con un error. Es como intentar meter un elefante en el maletero cuando el maletero es más pequeño que el elefante. O como tener una caja grande (el archivo), pero la puerta del buzón (post_max_size) es demasiado estrecha.

\n\n

¿Dónde viven las configuraciones de PHP? Tres caminos al éxito

\n\n

Tienes tres formas de cambiar el tamaño máximo de archivo a subir. Cuál elegir depende de tu hosting y nivel de acceso. Veamos cada una.

\n\n

Método 1. Editando php.ini (el estándar de oro)

\n\n

El archivo php.ini es el «panel de control» principal de PHP. Si tienes acceso al servidor (VPS, servidor dedicado o tu ordenador local), esta es la forma más fiable.

\n\n

Encuentra tu php.ini. Normalmente está en:

\n
    \n
  • Linux: /etc/php/8.x/apache2/php.ini o /etc/php/8.x/cli/php.ini
  • \n
  • Windows: C:\\xampp\\php\\php.ini (para XAMPP) o C:\\wamp64\\bin\\php\\php8.x\\php.ini
  • \n
\n\n

Abre el archivo y busca (o añade) las siguientes líneas:

\n\n
; Tamaño máximo de un solo archivo (ahora 50 MB)\nupload_max_filesize = 50M\n\n; Tamaño máximo de todos los datos POST (debe ser mayor o igual a upload_max_filesize)\npost_max_size = 64M\n\n; Tiempo máximo de ejecución del script en segundos (para archivos grandes, aumenta a 300)\nmax_execution_time = 300\n\n; Tiempo máximo para recibir datos (se recomienda al menos 5 minutos)\nmax_input_time = 300\n\n; Memoria por script (si el archivo es grande, aumenta a 128M o 256M)\nmemory_limit = 128M
\n\n

Después de los cambios, reinicia el servidor web:

\n
sudo systemctl restart apache2   # para Apache\nsudo systemctl restart nginx     # para Nginx
\n\n

¡Listo! Ahora tu sitio puede aceptar archivos de hasta 50 MB. Pero recuerda: post_max_size siempre debe ser unos megabytes mayor que upload_max_filesize para que haya espacio para los encabezados del formulario.

\n\n

Método 2. La magia de .htaccess (para hosting compartido)

Blogs

Book Recommendations