Oppure

Loading
26/09/14 16:28
Metal
Salve, mi serve una mano per capire se questa cosa si può fare e come.

Ho una pagina JSP con una form dove faccio inserire all'utente un URL (di un file). Questo URL viene inviato, tramite ajax, ad una servlet che dovrà scaricare il file sul server.
Quello che vorrei fare, è avere sulla pagina JSP una progress bar che segua il progresso del server nel download del file.

Cercando su google ho trovato una pagina sullo streaming HTTP, che proponeva di tenere aperta la connessione per qualche minuto (impostando la scadenza), continuare a far "scrivere" alla servlet la percentuale completata nel writer del respone (response.getWriter()) e continuare a "leggere" dalla JSP (con del codice javascript) quello che la servlet manda.

Qualcuno conosce qualche altra soluzione? O ha qualche idea?
aaa
03/10/14 14:34
Bonny
Ma stiamp parlando di un classico upload di file ?

O mi sembra di capire che questo URL non punta al client.

Comunque se è un upload di un file io ti consiglio questo plugin: malsup.com/jquery/form/

Altrimenti una soluzione al questito potrebbe essere:

nella form oltre all'url metti un id univoco nascosto (in un campo input hidden).
Eventi:

1) POST/GET {url: "bla bla bla", id: x}
2) La servlet prende in carico l'url e ogni tot secondi salva lo stato di avanzamento in sessione
request.getSession().setAttribute("USER_" + id, stato);
3) uno script ajax fa un pooling ogni tot millisecondo passando l'id ad una servlet che legge dalla sessione lo stato di avanzamento del download e lo ritorna al client, ovvero:
request.getSession().getAttribute("USER_" + id);
4) update progress bar

è un accrocchio poco elegante ma funzionerà (sicuramente meglio di tenere lo stream aperto... sicuramente Tomcat, jboss o qualsiasi altro server ti darà problemi)
Ultima modifica effettuata da Bonny 03/10/14 14:38
aaa