Hola Cluster, eres un crack.
Te informo de la situación y después te comento el problema:
- Tengo el script alojado en sync.es (de pago) - [Linux + Apache 1.3.31 + PHP 4.3.2 + MySQL 3.23.49 + GD 2.0.12]. - max_execution_time=30
- open_basedir=no value
- post_max_size=55M
- upload_max_filesize=2M
- Apache Timeouts= Connection: 300 - Keep-Alive: 15
- He modificado el tipo de datos de la BD a MEDIUMBLOB. - Necesito subir archivos de 1 Mb.
Tengo el siguiente problema con el script:
Cuando subo archivos relativamente grandes (de aproximadamente más de 300 Kb) el script no sube el archivo, devolviendo el siguente error:
Código:
Warning: fopen(/tmp/phpGWPHT6): failed to open stream: No such file or directory in /home/mipropio/public_html/admin/insertar.php on line 20
Warning: filesize(): Stat failed for /tmp/phpGWPHT6 (errno=2 - No such file or directory) in /home/mipropio/public_html/admin/insertar.php on line 20
Warning: fread(): supplied argument is not a valid stream resource in /home/mipropio/public_html/admin/insertar.php on line 20
La línea 20 es ésta:
Código PHP:
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));
Parece que el servidor borra el archivo temporal antes de que finalice el script, porque con archivos pequeños funciona perfectamente. En un principio creía que era por el tiempo de ejecución del script, por eso añadí la línea
set_time_limit(0); pero me seguía dando el mismo problema.
Si te sirve de ayuda, posteriormente, probé a cambiar de método. Intenté, en vez de insertar el binario en la base de datos, subir el archivo al servidor. Lo intenté con la función
ftp_put(), pero seguía funcionando bien con archivos pequeños y mal con archivos grandes. Seguía dando el mismo error. Y al final, lo intenté con la funcion
copy(), y seguía dando el mismo error con archivos grandes.
El problema es que cuando subo archivos relativamente grandes (de aproximadamente más de 300 o 400 Kb), me devuelve el error que te he comentado. Así que creo que el problema está en el servidor, puesto que los 3 scripts fallan en lo mismo.
También creía que era problema de las variables de PHP o las directivas de Apache, pero, tal y como te las he copiado arriba, parecen estar bien.
Te agradecería muchísimo que me echaras una mano para solucionarlo pues es un trabajo que tengo que entregar.
Muchísimas gracias!