PDA

View Full Version : [JSP/Java] Download di un file da server Tomcat a client


Dezseven
03-09-2008, 15:42
Salve a tutti,
stò lavorando con Tomcat che mi simula un ipotetico server che nel dialogo con il client invia pagine JSP al client. Fin qui nulla di nuovo.
A questo punto però il server deve inviare al client un file(suppongo per semplicità che il file ha un determinato nome, e il client non deve sceglierlo da una directory del server).
Sapete per caso se in ambito JSP/Java esiste qualche libreria(oppure anche qualche riga di codice Java) che permette di realizzare tale download da server a client?

P.S. Ad esempio per quanto riguarda l'upload da client a server esiste una libreria di classi java sviluppati dal progetto Jakarta commons; tale libreria ha nome fileupload-1.0.jar

gokan
03-09-2008, 16:59
Devi usare HttpServletResponse response, gli passi il file ( os ) e poi in base al tipo di file (ad esempio se un pdf) usi una cosa simile.


....
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment; filename=nomeDelFile.pdf");
.....
OutputStream os = response.getOutputStream ();
....

Dezseven
04-09-2008, 15:49
Devi usare HttpServletResponse response, gli passi il file ( os ) e poi in base al tipo di file (ad esempio se un pdf) usi una cosa simile.


....
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment; filename=nomeDelFile.pdf");
.....
OutputStream os = response.getOutputStream ();
....


Grazie mille, ho provato e funziona.
Praticamente ciò che viene scritto da os non va a finire su system.out ma con quelle due righe di codice(devo scrivere un file XML):

response.setContentType("application/xml");
response.addHeader("Content-Disposition", "attachment; filename=nomeDelFile.xml");

si reindirizza il flusso verso il file in questione.
Ciao, e ancora grazie.

GREZZO16
29-01-2009, 10:17
ciao
mi attacco a questa discussione per un problema molto simile.
uso tomcat 6, eclipse 3.4, java 6, taglibraries per le jsp. mysql 5.1.

la mia applicazione deve permettere il download di documenti .doc, il cui nome (nome.doc) è passato alla JSP tramite una servlet.
attualmente nella jsp per visualizzare i dati passati dalla servlet, uso sintassi come questa
<c:out value="${articolo.COLL}" />

il mio problema è che il "nomeDelFile" che dovrei usare nel response.addHeader, è visualizzato proprio con <c:out .../>

quindi come faccio a mettere nel response.addHeader quel nome?

in pratica la mia applicazione cerca in una cartella se c'è un file con un nome XXXX.doc (che è quello che passo tramite la servlet), solo che non riesco a farlo scaricare con la sintassi del <c: out>

cosa posso fare?

GREZZO16
04-02-2009, 15:40
risolto
si può chiudere