Hello Everyone,
Im needing a bit of help here.
First, Im trying to let client download a file from server and save it on client's pc.
When client clicks on button "DOWNLOAD", it will call a servlet that will download the file.
Expected outcome is that a SAVE AS DIALOG BOX will pop up so that client can choose output destination folder.
This is my CODE
path = getServletContext().getRealPath("/")+ "files/";
String filename = path + "users.txt";
String disHeader = "Attachment;Filename=\"users.txt\"";
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition",disHeader);
System.out.println(filename);
File fileToDownload = new File(filename);
FileInputStream fis = new FileInputStream(fileToDownload);
try {
//response.reset();
ServletOutputStream fos = response.getOutputStream();
System.out.println("after ng get output stream");
int i;
while ((i = fis.read()) != -1) {
fos.write(i);
//response.getWriter().write(i);
}
fis.close();
}
catch (Exception e) {
System.out.println(e);
}
System.out.println("ntapos ang whikle");
//response.reset();
infoMsg = "* Files were copied to C:/Temp/Backup/";
request.setAttribute("infoMsg", infoMsg);
destinationPage = "/erf_home.jsp";
dispatcher = getServletContext().getRequestDispatcher(destinationPage);
System.out.println("dispatcher nkuha");
//response.reset();
dispatcher.forward(request, response);
What happens is that I get IllegalStateException because I use the getOutputStream and the issue a forward request.
If I comment
dispatcher.forward(request, response);
All works well but the page is not redirected to the next page.
If I use
response.reset()
save dialog box does not appear.
I know that the code is in error.
Can you please give suggestions on what i can do so that save dalog box will appear and after download page will be redirected to another page (HOME PAGE)
Thanks for all your help.