Start New Discussion within our Web Development Community

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\"";
		File fileToDownload = new File(filename);
		FileInputStream fis = new FileInputStream(fileToDownload);
		try {
			ServletOutputStream fos = response.getOutputStream();
			System.out.println("after ng get output stream");
			int i;
			while ((i = != -1) {
		catch (Exception e) {
		System.out.println("ntapos ang whikle");
		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");
		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


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.

The article starter has earned a lot of community kudos, and such articles offer a bounty for quality replies.