Newsgroup: it.comp.java
Titolo: Netbean - scaricare un file dal server al client

Salve a tutti.
Ho iniziato a fare qualcosa con netbean ed ora dovrei dare la 
possibilità all'utilizzatore di scaricarsi un files excel che è stato 
creato sul server.
Ho operato in questo modo
1) // definisco variabili/costanti
     private String realImageFilePath;
     private static final String IMAGE_URL = "/tmpStampe";
2)
     ServletContext theApplicationServeletContext = 
(javax.servlet.ServletContext)
this.getExternalContext().getContext();
this.realImageFilePath = 
theApplicationServeletContext.getRealPath(IMAGE_URL);
3) creo il file excel
      HSSFWorkbook wb = new HSSFWorkbook();
      .......
4) assegno un nome al file e lo salvo
  String justFileName = FunzioniMie.GeneraID()+".xls";
         // assegno al file path+nome
         String filetmp =this.realImageFilePath+"/"+justFileName;
         FileOutputStream fileOut;
         try {
             fileOut = new FileOutputStream(filetmp);
              wb.write(fileOut);
             fileOut.close();
         } catch (FileNotFoundException ex) {
             error("Impossibile salvare il file "+filetmp);
                     }
fino a questo punto tutto va bene ed il file viene creato e salvato 
nella directory
miadirectory/build/tmpstampe
vorrei ora recuperare questo file e portarlo sul client
come quando digito l'url
http://localhost/tmpstampe/nomefile.xls
 che mi apre la finestra con la 
quale posso salvare il file o visualizzarlo.
Scusate ma sono proprio un novellino.
Grazie per l'aiuto.

 quale posso salvare il file o visualizzarlo.
Il client cosa dovrebbe essere, un browser web o altro?
-- 
Andrea Francia
http://andreafrancia.blogspot.com/

 Il client cosa dovrebbe essere, un browser web o altro?
un browser
Scusami per l'imprecisione nella formulazione ma ho le idee abbastanza 
confuse. Per il momento ho risolto associando ad un Hyperlink 
l'indirizzo "http:localhost:8084/miapplicazione/tmpstampe/nomefile.xls" 
ma questo indirizzo è statico per cui sto cercando fra le variabili 
d'ambiente di costruire l'url che possa funzionare con qualsiasi indirizzo.
Grazie e ciao.


Sono quasi sicuro che quello che intendi non sono le variabili 
d'ambiente. 
http://en.wikipedia.org/wiki/Environment_variable
In che senso "qualsiasi indirizzo"?


 In che senso "qualsiasi indirizzo"?
Infatti ho recuperato con system.getenv() le variabili d'ambiene e npon 
sono quelle che cerco forse le trovo in context().
Mi spiego meglio. In questa fase l'applicazione gira sul mio PC per cui 
l'indirizzo è 
http://localhost
Domani l'appicazione verrà installata su un server che avrà un suo IP 
per cui devo trovare il sistema per sostituire
http://localhost/miaapplicazione/tmpstampe/nomefile
  con
http://serverDoveApplicazioneInstallata/miaapplicazione/tmpstampe/nomefile
in pratica devo saper l'indirizzo o il nome del server che fa girare 
l'applicazione


Non impersonificarti nel software, altrimenti non ti spieghi.
Non sei tu che devi sapere l'indirizzo. O è il client o è il server. 
Cosa intendevi?
Il client deve sapere l'indirizzo del server ma è normale che lo sappia, 
di solito glielo dice l'utente o lo legge da un file di configurazione.
Il server non sempre deve conoscere l'indirizzo del server, anzi sarebbe 
meglio che non lo conoscesse e che fosse programmato in modo da 
funzionare qualunque sia. Un modo per ottenere questo è usare i path 
relativi nelle URL mandate al client.


usa un url relativo e guarda come funziona questo:
http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/http/HttpServletRequest.html#getContextPath()
però prima di fare queste cose bisogna documentarsi, un libro non fa mai
male ..
-- 
Davide Consonni

 male ..
Il libro l'avrei ma non sono riuscito a trovare quello che cercavo.
Comunque ho risolto il problema. Mi traeva in inganno  il getRealPath() 
mentre con getContextPath() va tutto bene.
L'unica cosa è che ora per fare il download del file devo cliccare su un 
link mentre sarebbe preferibile che fosse automatico ( ossia dopo che è 
stato creato il file dovrebbe uscire subito la finestra che richiede 
l'apertura o il salvataggio del file). Per il momento mi accontento
Grazie a tutti.

Non ho capito al 100% la tua applicazione ma:
Se vuoi restituire un file elaborato dal server invece di scriverlo su un 
direttorio del server puoi restituirlo tramite la servlet al browser invece 
della normale pagina di risposta. In pratica restituisci quello che il web 
server restituisce quando clicchi su un link ad un file non html.
Devi avere cura di formattare corretamente il type dell'intestazione della 
pagina per far capire al browser che è un file excel.
Ciao. 

Il mio nome è legione ha scritto:

Sono approdato a java da solo un paio di mesi e sono nella fase di 
"ambientamento". cerco di documentarmi, copio o analizzo programmi fatti 
in rete per cui mi sto facendo le ossa.
gli esempi che ho trovato sul servlet visualizzavano i dati sul browser 
mentre io voglio, come hai capito, che venga scaricato il file excel in 
modo che l'operatore lo possa modificare a piacimento.
Se mi puoi fare un sempice esempio di servlet per lo scarico del file ti 
sarò molto grato.
Ciao

modo che l'operatore lo possa modificare a piacimento.
Io, per operazioni del genere, ho usato i filtri:
http://java.sun.com/products/servlet/Filters.html
E' molto semplice.


Spulcio tra i pro 

 wrote in message 
news:4842d04a$0$18152$4faf...@reader3.news.tin.it... 

 funziona alla perfezione).
Naturalmente Excel 2008 può leggere i vecchi formati 2003.
-- 
Andrea Francia
http://andreafrancia.blogspot.com/2008/05/schermare-le-remoteexception.html