En PHP el tamaño máximo por defecto para subir archivos es de 2 megas.
Si deseamos aumentar el tamaño deberemos de cambiar la configuración de algunos parámetros.
¿Qué tengo que modificar?
El archivo php.ini contiene la configuración de PHP. En concreto los parámetros son:
- post_max_size: tamaño máximo de los datos enviados por POST.
- upload_max_filesize: tamaño máximo al subir archivos.
- max_execution_time: tiempo máximo de ejecución de cada script en segundos.
- max_input_time: tiempo máximo de sepera en la recepción de datos.
Voy a citar algunos métodos para modificar dichos parámetros.
1.-Configurar directamente el php.ini
Editando directamente los parámetros del archivo php.ini se soluciona el problema.
Vamos a poner de ejemplo 10 Mb como máximo al subir archivos y un tiempo de espera y ejecución de 15 minutos, es decir 900 segundos.
Buscamos los parámetros dentro del archivo.
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 900
max_input_time = 900
post_max_size = 10M
; Maximum allowed size for uploaded files.
2- Crear un archivo .htaccess
Otra forma es cambiar la configuración desde un archivo .htaccess. Crea el archivo y escribe el siguiente código :
php_value upload_max_filesize 100M
php_value post_max_size 100M
php_value max_execution_time 1000
php_value max_input_time 1000
Si no sabes crear un archivo .htaccess desde windows te dejo un tutorial de como hacerlo.
Ahora súbelo a la raíz de tu servidor y ya esta.
3.- Cambiar la configuración en tiempo de ejecución.
La forma más personalizada es mediante código PHP. Y digo que es la más personalizada porque te permite cambiar la configuración desde cualquier parte del código PHP. Utilizando la "función" ini_set.
ini_set('post_max_size','100M');
ini_set('upload_max_filesize','100M');
ini_set('max_execution_time','1000');
ini_set('max_input_time','1000');
// script de subir archivos
?>
9 comentarios:
hola soy miguel, muy interesante tu blog...soy programador php novidente, me encantaria contactar con algun otro programador php para llevar a cabo un nuevo proyecto de red social, el que este interesado que me escriba a mi mail o que me agregue a su msn: msn(arroba)taoru.com.ar
Este artículo me ha sido de mucha utilidad, llevaba rato buscando e intentando porque no sabia que era necesario modificar tambien post_max_size, me has salvado el dia :) Gracias!
me alegra que os sirva de ayuda
Excelente pos aun despues de un año me sirve para modificar paramentros en moodle, no sabia que el tiempo tambien se modificaba ... ahora entiendo muchas cosas jejejeje. gracias
En mi caso los valores en tiempo de ejecucion no cambian, la prueba q realizo es:
ini_set('post_max_size','100M');
ini_set('upload_max_filesize','100M');
ini_set('max_execution_time','1000');
ini_set('max_input_time','1000');
y con ini_get muestro el valor y siempre me trae el mismo que esta en el archivo php.ini
echo "".ini_get("post_max_size")."";
DavidV tal vez no te permita utilizar la opción ini_set, te recomiendo probar con la creación del archivo .htaccess
Hola. Sabes como se hace para evitar que haya time out (o sea, que se corte la subida por superar una cantidad de tiempo determinada)?
gracias
max_execution_time = 900
max_input_time = 900
Publicar un comentario