In this tutorial you will learn about files in servlet using servlet
Servlet File Download
Follow the Steps to download file from servlet
- Get the path of the file and create the FileInputStream object as
FileInputStream fileToDownload = new FileInputStream(filePath);
- Then create the ServletOutputStream from the response as
ServletOutputStream output = response.getOutputStream();
- Set the Content (MIME) type, response header and content length as
response.setContentType("application/zip"); response.setHeader("Content-Disposition", "attachment; filename="+ fileName); response.setContentLength(fileToDownload.available());
- Now create the byte array and read the data from the InputStream and write it to the OutputStream
int readBytes = 0; byte[] buffer = new byte[10000]; while ((readBytes = fileToDownload.read(buffer, 0, 10000)) != -1) { output.write(readBytes); }
The complete Servlet class is given below
ServletFileDownload.java
package devmanuals.servlet; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletFileDownload extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String filePath ="C:\\testComboBox.zip"; String fileName ="test.zip"; FileInputStream fileToDownload = new FileInputStream(filePath); ServletOutputStream output = response.getOutputStream(); response.setContentType("application/zip"); response.setHeader("Content-Disposition", "attachment; filename="+ fileName); response.setContentLength(fileToDownload.available()); int readBytes = 0; byte[] buffer = new byte[10000]; while ((readBytes = fileToDownload.read(buffer, 0, 10000)) != -1) { output.write(readBytes); } output.close(); fileToDownload.close(); fileToDownload.close(); } }
[ 0 ] Comments