Eric Cute 33 Posting Whiz in Training

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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.