Domanda

Ho bisogno di un modo semplice per consentire agli utenti di caricare più file contemporaneamente (cioè devo consentire a un utente di caricare una cartella). Non desidero mettere l'onere di zippare l'utente.

Preferirei evitare Flash o varianti, se possibile. Sto cercando una soluzione javascript / HTML diretta, se possibile. Si noti che ciò esclude le risposte all'indirizzo: Qual è la migliore libreria del browser lato client per caricare più file su http? .

È stato utile?

Soluzione

Non sarai in grado di farlo solo con HTML e Javascript. Consiglio di provare Fancy Upload , a MooTools per upload di più file. Utilizza una miscela di JavaScript e Flash, ma degrada con garbo. Funziona con tutti i principali browser incluso IE6 e è disponibile anche una versione compatibile con Flash 10 per il download (anche se la demo non è stata ancora aggiornata).


Aggiornamento (26/11/2012):

Caricamenti multipli di file sono possibili con valums o blueimp caricatori di file.

Per i caricamenti di directory ricorsive , la soluzione migliore è utilizzare la la nuova API di caricamento della cartella di Chrome 11 . Sembra funzionare anche su Firefox se si utilizza un prefisso del fornitore.

Altri suggerimenti

Con Firefox 42 e Edge che hanno implementato la nuova proposta di caricamento della directory noi ' Sarò finalmente in grado di eseguire caricamenti di directory tra browser. Le API sono abbastanza brutte che potresti voler controllare il mio wrapper, uppie .

Se stai evitando Flash (e presumibilmente Java?) la soluzione solo per JS / HTML richiede ancora input s a file singolo, ma essenzialmente alleghi un onchange evento al tuo <=>, aggiungendo un nuovo <=> al DOM ogni volta che viene selezionato un file.

FTP? E se necs, avvolgi in Java Applet, ActiveX o qualunque cosa tu voglia.

In caso contrario, anche se non si desidera il flash, SWFUpload è piuttosto interessante, si consiglia di riconsiderarlo come opzione decente.

Caricamenti di più file sono possibili con valums o blueimp caricatori di file.

Per i caricamenti di directory ricorsive , le tue opzioni sono più limitate:

Questa non è una soluzione js / html pura. Come ha sottolineato EndangeredMassa, non è possibile. In realtà, questa idea è una soluzione IE / Windows. Non lo consiglio, ma può funzionare.

Quindi, tutte le dichiarazioni di non responsabilità a parte ...

Molti anni e diversi datori di lavoro fa, facevamo alcune cose sul lato client che creavano un'istanza di FileSystemObject. Esaminerebbe ciascuno dei file e li passerebbe al server uno alla volta. Non ricordo i dettagli di come l'abbiamo fatto: o (

In ogni caso, questo significava in genere che la casella client avrebbe dovuto aggiungere il sito all'elenco dei siti attendibili e fornire ai siti attendibili un insieme di autorizzazioni disattivate (per ottime ragioni). Roba come la possibilità di inizializzare e scrivere controlli ActiveX non contrassegnati come sicuri. Questo genere di cose.

So che questa non è una risposta perfetta, ma potrebbe indicarti la giusta direzione.

Qui è una soluzione JS pura che utilizza la libreria ExtJS

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top