Silent Ninja
19/05/2008, 23:08
Subir archivos por PHP es muy fácil, no les voy a hablar del formulario, pero les comento que en algunos casos si quieren subir archivos de más de 2mb de tamaño, tienen que cambiar la configuración base del PHP.
Lo pueden hacer creando un archivo llamado "php.ini" y lo tienen que poner en la ruta adonde ejecuten el archivo que sube datos. Acá hay 2 ejemplos:
- Si el script que sube archivos se ejecuta así:
http://sitioweb/portal/subirarchivo.php
* El php.ini va adentro de la carpeta portal
- Si el script se ejecuta así:
http://sitioweb/index.php?include=subirarchivo
* Por más que el script que lo sube esté en otro lado, tiene que estar en la carpeta del index.php (fijate que si el action del formulario, va a una subcarpeta, tenés que ponerlo en ambos lados).
Ahora, al grano, ¿qué va en el php.ini?
upload_tmp_dir = /home/usuario/tmp
max_execution_time = 1000
max_input_time = 1000
post_max_size = 100M
memory_limit = 100M
upload_max_filesize = 100M
IMPORTANTE: Adonde dice "home usuario", tenés que modificarlo por tu usuario de cpanel. Por ejemplo si tu usuario es "pepe", la ruta va a ser /home/pepe/tmp . En algunos casos, la "home" puede ser otra (www, home2, home3), podes fijarte en el cPanel la ruta por defecto a la izquierda, y sino, pedirle al soporte técnico que te habiliten un link para usar siempre /home sin importar donde estés.
Una vez tengas ese php.ini, todos los uploads hasta 100mb (que demoren menos de 1000 segundos) van a subir re bien.
Si queres subir archivos más grandes, o tenes una conexión medio lenta y demora más de 1000 segundos la subida (un poco más de 15 minutos), te recomiendo utilizar el FTP directamente (podes crear cuentas de ftp distintas de tu usuario de cpanel para no darle los datos a todos), o tendrás que utilizar un plan de VPS / Servidor Dedicado; porque los procesos tan largos o con carga de ficheros como estos, pueden consumir muchos recursos.
Lo pueden hacer creando un archivo llamado "php.ini" y lo tienen que poner en la ruta adonde ejecuten el archivo que sube datos. Acá hay 2 ejemplos:
- Si el script que sube archivos se ejecuta así:
http://sitioweb/portal/subirarchivo.php
* El php.ini va adentro de la carpeta portal
- Si el script se ejecuta así:
http://sitioweb/index.php?include=subirarchivo
* Por más que el script que lo sube esté en otro lado, tiene que estar en la carpeta del index.php (fijate que si el action del formulario, va a una subcarpeta, tenés que ponerlo en ambos lados).
Ahora, al grano, ¿qué va en el php.ini?
upload_tmp_dir = /home/usuario/tmp
max_execution_time = 1000
max_input_time = 1000
post_max_size = 100M
memory_limit = 100M
upload_max_filesize = 100M
IMPORTANTE: Adonde dice "home usuario", tenés que modificarlo por tu usuario de cpanel. Por ejemplo si tu usuario es "pepe", la ruta va a ser /home/pepe/tmp . En algunos casos, la "home" puede ser otra (www, home2, home3), podes fijarte en el cPanel la ruta por defecto a la izquierda, y sino, pedirle al soporte técnico que te habiliten un link para usar siempre /home sin importar donde estés.
Una vez tengas ese php.ini, todos los uploads hasta 100mb (que demoren menos de 1000 segundos) van a subir re bien.
Si queres subir archivos más grandes, o tenes una conexión medio lenta y demora más de 1000 segundos la subida (un poco más de 15 minutos), te recomiendo utilizar el FTP directamente (podes crear cuentas de ftp distintas de tu usuario de cpanel para no darle los datos a todos), o tendrás que utilizar un plan de VPS / Servidor Dedicado; porque los procesos tan largos o con carga de ficheros como estos, pueden consumir muchos recursos.