Estoy trabajando en una aplicación web. Hay un lugar donde el usuario puede cargar archivos con el protocolo HTTP. Existe la opción entre el control de carga de archivos HTML clásico y un applet de Java para cargar los archivos.La mejor manera de cargar varios archivos desde un navegador
La carga de archivos HTML clásico no es muy grande, ya que sólo puede seleccionar un archivo a la vez, y es bastante difícil de conseguir ninguna indicación de progreso durante la carga real (al fin entendí usando un temporizador refrescante un indicador de progreso con datos obtenidos del servidor a través de una llamada AJAX). La ventaja: siempre está funcionando.
Con el applet de Java puedo hacer más cosas: seleccionar varios archivos a la vez (incluso una carpeta), comprimir los archivos, obtener una barra de progreso real, arrastrar y soltar archivos en el applet, etc.
pero hay algunos inconvenientes:
- es una pesadilla para conseguir que funcione correctamente en Safari de Mac y Mac Firefox (Gracias LiveConnect)
- la interfaz de usuario no es exactamente la interfaz de usuario nativa y algunas personas notan que
- el applet no responde tan bien como debería (podría ser mi culpa, pero todo se ve bien para mí)
- hay errores en la clase Java
UrlConnection
con HTTPS, por lo que utilizo el cliente HTTP común de Apache para realizar la carga HTTP real. Es bastante grande un paquete y se ralentiza la descarga del archivo .jar - cliente HTTP Apache común ha a veces problemas para ir a través de proxys
- el tiempo de ejecución de Java es bastante grande
He estado manteniendo esta Applet de Java por un tiempo, pero ahora estoy harto de todos los inconvenientes, y considerando escribir/comprar un componente completamente nuevo para cargar estos archivos.
Pregunta
Si tuviera los siguientes requisitos:
- cargar varios archivos fácilmente desde un navegador, a través de HTTP o HTTPS
- comprimir los archivos para reducir el tiempo de carga
- la carga debería funcionar en cualquier plataforma, con interfaz de usuario nativa
- debe ser capaz de cargar archivos de gran tamaño, hasta 2 gb a t menos
- que tiene carta blanca en la tecnología
¿Qué tecnología/compontent usaría?
Editar:
- arrastrar y soltar los archivos en el componente sería una gran ventaja.
- Parece que hay muchos problemas relacionados con errores con Flash Player (swfupload known issues). La compatibilidad adecuada con Mac y la carga a través de proxies con autenticación son opciones de las que no puedo prescindir. Esto probablemente descartaría todas las opciones basadas en Flash :-(.
- Elimino todas las opciones HTML/Javascript solamente porque no puede seleccionar más de un archivo a la vez con el control HTML clásico. Es un dolor hacer clic n veces en el botón "examinar" cuando desee seleccionar varios archivos en una carpeta.
¿Qué hay de cargas reanudables? Eso parece realmente importante para mí.A nadie le gusta reiniciar una carga que falló después de un par de horas. –
Es verdad, en ese caso, no creo que todavía pueda usar Flash, solo Java (¿y Silverlight?) –
Hola otro cargador basado en Flash que se puede encontrar en http://digitarald.de/project/fancyupload/ –