Sto lavorando su un'applicazione web. C'è un posto dove l'utente può caricare file con il protocollo HTTP. C'è una scelta tra il classico controllo del caricamento dei file HTML e un applet Java per caricare i file.Il modo migliore per caricare più file da un browser
Il caricamento di file HTML classico non è eccezionale perché è possibile selezionare un solo file alla volta ed è piuttosto difficile ottenere indicazioni di avanzamento durante il caricamento effettivo (finalmente l'ho ottenuto utilizzando un timer che aggiorna un indicatore di avanzamento con dati recuperati dal server tramite una chiamata AJAX). Il vantaggio: funziona sempre.
Con l'applet Java posso fare più cose: selezionare più file contemporaneamente (anche una cartella), comprimere i file, ottenere una vera barra di avanzamento, trascinare i file sull'applet, ecc ...
ma ci sono alcuni inconvenienti:
- è un incubo per farlo funzionare correttamente su Mac Safari e Mac Firefox (Grazie LiveConnect)
- l'interfaccia utente non è esattamente il nativo interfaccia utente e alcune persone notare che
- l'applet non è reattivo come dovrebbe (potrebbe essere colpa mia, ma tutto mi sembra ok)
- ci sono errori nella classe Java
UrlConnection
con HTTPS, quindi utilizzo il client HTTP comune Apache per eseguire il caricamento HTTP effettivo. E 'abbastanza grande un pacchetto e rallenta il download del file .jar - il cliente comune HTTP Apache a volte ha difficoltà a passare attraverso i proxy
- il runtime Java è abbastanza grande
Sono stato il mantenimento di questa Applet Java per un po 'ma ora sono stufo di tutti gli inconvenienti, e considerando di scrivere/acquistare un componente completamente nuovo per caricare questi file.
Domanda
Se tu avessi i seguenti requisiti:
- caricare più file facilmente da un browser, tramite HTTP o HTTPS
- comprimere i file per ridurre il tempo di caricamento
- il caricamento dovrebbe funzionare su qualsiasi piattaforma, con l'interfaccia utente nativa
- deve essere in grado di caricare file enormi, fino a 2 GB a t almeno
- avete carta bianca sulla tecnologia
Quale tecnologia/compontent useresti?
Edit:
- Drag'n'Drop di file sul componente sarebbe un grande vantaggio.
- Sembra che ci siano molti problemi relativi ai bug con Flash Player (swfupload known issues). Il supporto Mac corretto e il caricamento tramite proxy con autenticazione sono opzioni di cui non posso fare a meno. Questo probabilmente escluderebbe tutte le opzioni basate su Flash :-(.
- Escludo tutte le opzioni HTML/Javascript-only perché non è possibile selezionare più di un file alla volta con il controllo HTML classico. È difficile fare clic su n volte il pulsante "sfoglia" quando si desidera selezionare più file in una cartella.
E i caricamenti ripristinabili? Sembra davvero importante per me.A nessuno piace riavviare un caricamento che ha avuto esito negativo dopo un paio d'ore. –
È vero, in questo caso non penso che tu possa ancora usare Flash, solo Java (e Silverlight?) –
Ciao un altro Uploader basato su Flash è disponibile su http://digitarald.de/project/fancyupload/ –