
La subida de archivos de gran tamaño es un problema típico en desarrollo de aplicación web. Hay que lidiar con problemas de conexión, estado del progreso, limitaciones del servidor...
Resumable.js, es una librería de JavaScript que se encarga de solucionarnos este problema, proporciona subida múltiple de ficheros de forma estable y reanudable a través de la API de archivos HTML5.
La biblioteca está diseñada para controlar los fallos en la carga de archivos de gran tamaño a través de HTTP. Esto se hace mediante la división de cada archivo en trozos pequeños. Cuando falla la carga de un trozo, se vuelve a intentar hasta que el proceso de subida haya finalizado. Esto permite reanudar automáticamente la carga si la conexión de red se pierde.
Además, los usuarios siempre pueden hacer una pausa, reanudar o reiniciar cargas con facilidad.
La librería dispone de multiples opciones. Es posible definir el tamaño de los bloques, detectar si se admite la API de archivos HTML5, obtener el estado de progreso y mucho más.
Actualmente, su funcionamiento se limita a Firefox 4 + y Chrome 11 +.
Os dejo un enlace a un ejemplo de implementación del lado del servidor de subida de ficheros en PHP para un cliente de Resumable.js. Esta implementación almacena todos los trozos en una carpeta temporal, para que una vez que estén subidos todos los trozos se pueda generar el archivo final. Ejemplo backend PHP