Pregunta

Necesito una manera fácil de permitir que los usuarios carguen varios archivos a la vez (es decir, necesito permitir que un usuario cargue una carpeta). No deseo poner la carga de comprimir al usuario.

Preferiría evitar Flash o variantes si es posible. Estoy buscando una solución directa de JavaScript / HTML si es posible. Tenga en cuenta que esto excluye las respuestas en: ¿Cuál es la mejor biblioteca del navegador del lado del cliente para cargar varios archivos a través de http? .

¿Fue útil?

Solución

No podrás hacerlo solo con HTML y Javascript. Recomiendo probar Fancy Upload , a Complemento MooTools para subir múltiples archivos. Utiliza una mezcla de JavaScript y Flash, pero se degrada con gracia. Funciona con todos los principales navegadores, incluido IE6, y también hay una versión compatible con Flash 10 disponible para descargar (aunque la demostración aún no se ha actualizado).


Actualización (2012-11-26):

Se pueden cargar múltiples archivos con valums o cargadores de archivos blueimp .

Para las cargas de directorios recursivos , su mejor solución es usar la nueva API de carga de carpetas de Chrome 11 . También parece funcionar en Firefox si usa un prefijo de proveedor.

Otros consejos

Con Firefox 42 y Edge implementando la nueva propuesta de carga de directorio nosotros ' finalmente podré hacer cargas de directorios entre navegadores. Las API son lo suficientemente desagradables como para que desee consultar mi contenedor, uppie .

Si está evitando Flash (¿y presumiblemente Java?), la solución JS / HTML solo requiere input s de un solo archivo, pero esencialmente adjunta un evento onchange a su <=>, agregando un nuevo <=> al DOM cada vez que se selecciona un archivo.

FTP? Y si es necesario, envuelva Java Applet, ActiveX o lo que quiera.

Si no es así, aunque no desea flash, SWFUpload es bastante bueno, es posible que desee reconsiderarlo como una opción decente.

Se pueden cargar varios archivos con valums o cargadores de archivos blueimp .

Para las cargas de directorios recursivos , sus opciones son más limitadas:

Esta no es una solución js / html pura. Como ha señalado EndangeredMassa, no es posible. De hecho, esta idea es una solución única para IE / Windows. No lo recomiendo, pero puede funcionar.

Entonces, todos los descargos de responsabilidad a un lado ...

Hace muchos años y varios empleadores, solíamos hacer algunas cosas del lado del cliente que instanciaban el FileSystemObject. Repetiría cada uno de los archivos y los pasaría al servidor uno por uno. No puedo recordar los detalles de cómo lo hicimos: o (

De todos modos, esto generalmente significaba que la casilla del cliente tendría que agregar el sitio a la lista de sitios confiables y otorgar a los sitios confiables un montón de permisos que están desactivados (por muy buenas razones). Cosas como la capacidad de Inicializar y escribir controles ActiveX no marcados como seguros. Ese tipo de cosas.

Sé que esta no es una respuesta perfecta, pero podría orientarte en la dirección correcta.

Aquí es una solución JS pura que usa la biblioteca ExtJS

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top