Miquel,

All you are doing is writing out a file on your server and then sending back
an empty response to the user - if you want to download the file, you need
to write it out to the response.

Try creating your file by writing it to a ByteArrayOutputStream, rather than
FileOutputStream

   ByteArrayOutputStream baos = new ByteArrayOutputStream();
   PrintWriter pw = new PrintWriter(baos);
   .... etc etc

Then write that ByteArrayOutputStream to the response...

   ServletOutputStream sos = response.getOutputStream();
   baos.writeTo(sos);
   sos.flush();


Niall

----- Original Message ----- 
From: "Miquel Angel" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
Sent: Thursday, June 10, 2004 1:01 PM
Subject: Downloading a file from an Action class.


> Hi!
>
> I try to download a file from an action class to the user PC. That's what
I
> do in the action class:
>
> String Path = "C:" + java.io.File.separator; //Location of the file
> String FileName =  Path + "CSV.TXT"; //Name of the file
> int buffer = 10 * 1024;
> File file = new File(FileName);
> FileOutputStream fos = new FileOutputStream(file);
>
> //Fill the file with some information.
> PrintWriter pw = new PrintWriter(fos);
> for (int i = 0; i< 200; i++) {
> pw.write("l1 campo1" + ";" + "l1 campo2" + ";" + "l1 campo3" + "\n");
> pw.write("l2 campo1" + ";" + "l2 campo2" + ";" + "l2 campo3" + "\n");
> }
>
> pw.flush();
> pw.close();
>
> fos.close();
>
> //download
> response.reset();
> response.setContentType("text/plain");
> response.setHeader("Content-Disposition", "attachment; filename=\"" +
> file.getName() + "\"");
> response.flushBuffer();
>
> return null;
>
> All works fine, but when the user save the file, it's empty. Any ideas..
>
> Thanks in advance.
>
> Miquel Angel Segui
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to