viernes, 21 de febrero de 2014
La solución elegante
Tras la entrada anterior, probaré la solución elegante, uploadify. El motivo es que tiene una manera secuencial de subir archivos, evitando bloqueos en el servidor. La semana que viene adaptaré su código al mío.
jueves, 20 de febrero de 2014
Revelaciones
Para el proyecto bíblico Revelaciones vamos a centrarnos inicialmente en modificar las restricciones de subida de archivos intrínsecas al servidor PHP.
La documentación nos la encontramos en http://php.net/manual/es/ini.core.php#ini.sect.file-uploads:
He aquí una breve explicación de las directivas de configuración.
La directivas
Modificamos los parámetros y reiniciamos apache (cyberciti.biz):
La documentación nos la encontramos en http://php.net/manual/es/ini.core.php#ini.sect.file-uploads:
Nombre | Por defecto | Cambiable |
---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM |
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
max_input_nesting_level | 64 | PHP_INI_PERDIR |
max_input_vars | 1000 | PHP_INI_PERDIR |
upload_max_filesize | "2M" | PHP_INI_PERDIR |
max_file_uploads | 20 | PHP_INI_SYSTEM |
file_uploads
boolean- Si permitir o no la subida de ficheros mediante HTTP. Véanse también las directivas upload_max_filesize, upload_tmp_dir, y post_max_size.
upload_tmp_dir
string- El directorio temporal usado para almacenar ficheros durante el proceso de subida. Es necesario tener permisos de escritura para el usuario que está ejecutando PHP. Si no está especificado, PHP usará el predeterminado del sistema.
Si el directorio especificado no tiene permisos de escritura, PHP recurrirá al directorio temporal predeterminado del sistema. Si la directiva open_basedir está activada, al directorio predeterminado del sistema se le ha de permitir la subida de ficheros para que funcione. upload_max_filesize
integer- El tamaño máximo de un fichero subido.
Cuando se usa un integer, el valor del mismo es medido en bytes. También se puede usar la notación reducida, tal como se describe en esta FAQ. max_file_uploads
integer- El número máximo de ficheros a subir permitidos de forma simultánea. A partir de PHP 5.3.4, los campos de subida de ficheros dejados en blanco en el momento del envío no cuentan en este límite.
max_post_size
, pues ésta limita el tamaño total de archivos de subida. max_post_size
debe ser mayor o igual que upload_max_filesize
, y memory_limit
debe ser mayor o igual que max_post_size
.La directivas
ini_get('upload_max_filesize')
e ini_get('max_file_uploads')
dan los valores por defecto, 2M
y 20
, así pues hemos de modificar estos parámetros, y solo se puede hacer desde el php.ini. Seguimos los pasos de http://bajolinux.com/upload_max_filesize-php-modificar-el-tamano-maximo-subida-archivo/, pero teniendo en cuenta que en el mac php.ini se debería encontrar en /private/etc/php.ini, y si no, copiamos php.ini.default en esa ubicación (stackoverflow.com):sudo cp /private/etc/php.ini.default /private/etc/php.ini
Modificamos los parámetros y reiniciamos apache (cyberciti.biz):
sudo apachectl -k restart
Y ahora ya aparecen los valores correctos:upload_max_filesize: 10M
max_file_uploads: 30
lunes, 17 de febrero de 2014
Mes dos
El sábado descubrí que la máquina había rebasado la capacidad de almacenaje, lo cual iba a ocurrir tarde o temprano, pero ha sucedido demasiado temprano. He tenido que hacer cálculos y previsiones, qué tedioso.
Haciendo un prorrateo sería necesario medio millón de años para terminar la producción, y no exagero. Es necesario tener otro enfoque: cambiar la tecnología y hacer un sistema totalmente no supervisado.
Lo primero es pasar el código JS a Java, una locura. Se pierde tiempo, pero gano en un programa mejor estructurado y, espero, más rápido. Mi pésima memoria ha de recordar la declaración de arrays y el System.arraycopy para clonarlos, la de cosas que se pueden olvidar.
Luego está la fabricación de workers y su ejecutor.
Hoy hemos retrocedido dos pasos para coger impulso mañana.
Haciendo un prorrateo sería necesario medio millón de años para terminar la producción, y no exagero. Es necesario tener otro enfoque: cambiar la tecnología y hacer un sistema totalmente no supervisado.
Lo primero es pasar el código JS a Java, una locura. Se pierde tiempo, pero gano en un programa mejor estructurado y, espero, más rápido. Mi pésima memoria ha de recordar la declaración de arrays y el System.arraycopy para clonarlos, la de cosas que se pueden olvidar.
Luego está la fabricación de workers y su ejecutor.
Hoy hemos retrocedido dos pasos para coger impulso mañana.
Suscribirse a:
Entradas (Atom)