Upload de archivos > 2Mb (PHP)
- 29/02/2008
- 12:42 am
Subir archivos a un servidos es una de las tareas más comunes en el desarrollo de aplicaciones con PHP del cual hemos comentado en Upload de Archivos con PHP, normalmente los archivos que suben son como máximo 2Mb. Pero hay problemas cuando se quieren subir archivos de mayor tamaño, para ello veremos algunos métodos para resolver este inconveniente.
Que debemos configurar
El archivo php.ini contiene los parámetros de configuración de PHP, entre ellas los parámetros relacionados para subir archivos, estas propiedades son:
- post_max_size: tamaño máximo de datos enviados por POST.
- upload_max_filesize: tamaño máximo para subir archivos.
- max_execution_time: tiempo máximo de ejecución de cada script en segundos.
- max_input_time: tiempo máximo para analizar la petición de datos.
Primer Método: Configurando php.ini
La primera forma para habilitar el upload de archivos grandes es editar el archivo php.ini. Entonces, abrimos el archivo php.ini y cambiamos los parámetros deseados, en nuestro caso habilitamos un máximo de 100 Mb de tamaño a subir y un tiempo máximo de 1000 segundos:
-
;;;;;;;;;;;;;;;;;;;
-
; Resource Limits ;
-
;;;;;;;;;;;;;;;;;;;
-
max_execution_time = 1000
-
max_input_time = 1000
-
; Maximum size of POST data that PHP will accept.
-
post_max_size = 100M
-
; Maximum allowed size for uploaded files.
-
upload_max_filesize = 100M
Segundo Método: Configurando .htaccess
La segunda forma de cambiar la configuración es con la ayuda del archivo .htaccess, para ello creas un archivo llamado .htaccess en la raiz de tu servidor web, luego dentro de este archivo colocas lo siguiente:
-
php_value upload_max_filesize 100M
-
php_value post_max_size 100M
-
php_value max_execution_time 1000
-
php_value max_input_time 1000
Tercer Método: Configurando en el script php
La tercera forma es cambiar los parámetros de configuración directamente en nuestro script php, para ello haremos uso de la función ini_set que permite sobrescribir la configuración general, entonces al inicio de nuestro script que se encargará de procesar los archivos subidos colocamos:
A mi parecer la segunda forma es la mas practica pues solo creamos un archivo y con ello habilitamos la opción de upload para archivos grandes, además en todos los hosting comerciales es posible crear el archivo .htaccess.
Posts Relacionados
- SWFUpload beta
- FTP Upload con PHP
- Upload de Archivos con Flash
- Upload de Archivos con PHP
- Upload Multiple tipo Gmail
Total de Comentarios: 5
tengo este sitio en Strato, tengo q habilitar la carga de archivos de mas de 2 mb, no tengo acceso al php.ini y entonces puse el htaccess bajo la carpeta /httpdocs: no funciono.
Puse el archivo htaccess tambien en la carpeta donde se realizara la carga: tampoco funciono. TE agradezco avisarme si es un tema del htaccess que no funciona siempre o esta mal ubicado.
hola,
he de subir archivos de más de 2M a un servidor con php.ini compartido… he puesto el código con ini_set directamente en el archivo que gestiona la subida de ficheros.
ini_set(’post_max_size’,'100M’);
ini_set(’upload_max_filesize’,'100M’);
ini_set(’max_execution_time’,'1000′); ini_set(’max_input_time’,'1000′);
pero al hacer un phpinfo(); solo me cambia el max_executyion_time en la configuración local.
Por qué puede ser esto? que cambie unas variables si y otras no?
tengo que tocar mas argumentos de php.ini para poder subir archivos a parte de los que se especifican aquí?
Gracias!
A mi no me funciono en un hosting debido a que este tenia instaladp el Apache como CGI y no como modulo, por lo que cree un archivo php.ini y le puse lo siguiente :
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time 1000
max_input_time 1000
Y listo! Ya puedo subir archivos de hasta 100 megas!!!
Saludos.
Hola,
en su momento me encontré con el mismo problema, el volcado de una copia de seguridad de una base de datos almacenada en un fichero de gran tamaño. Cierto es que no recuerdo como lo solventé, creo que me pude conectar a la consola del sistema, pero buscando buscando encontré BigDump [1] que a lo mejor es puede eyudar. Ciao :-)
Hola !!! en segunda forma me sale un error de 500 Internal Server Error, soy novato en esto y no encuentro mi php.ini donde sopuestamente deberia estar…. gracias

