In this Tutorial i'm going to explain how you can serve files to your users using JSP. Since we are not serving a HTML page so first we need to tell the browser that what kind of data we are going to serve for that we set Response Headers
response.setContentType("application/msword");Here application/msword is the mime type you can search internet for diff. mime type required for diff. extensions few commonly used are
response.addHeader( "Content-Disposition","attachment; filename=your file name" );
- image/jpeg
- text/plain
- application/pdf
link format for filedownload
<a href="download.jsp?filename=myresume.doc">Download my resume</a>
Download.jsp
<%@ page import="java.io.FileInputStream" %>
<%@ page import="java.io.BufferedInputStream" %>
<%@ page import="java.io.File" %>
<%@ page import="java.io.IOException" %>
<%
// you can get your base and parent from the database
String base="file";
String filename=request.getParameter("filename");
// you can write http://localhost
String filepath="http://localhost:8080/filedownload/"+base+"/";
BufferedInputStream buf=null;
ServletOutputStream myOut=null;
try{
myOut = response.getOutputStream( );
File myfile = new File(filepath+filename);
//set response headers
response.setContentType("application/msword");
response.addHeader(
"Content-Disposition","attachment; filename="+filename );
response.setContentLength( (int) myfile.length( ) );
FileInputStream input = new FileInputStream(myfile);
buf = new BufferedInputStream(input);
int readBytes = 0;
//read from the file; write to the ServletOutputStream
while((readBytes = buf.read( )) != -1)
myOut.write(readBytes);
} catch (IOException ioe){
throw new ServletException(ioe.getMessage( ));
} finally {
//close the input/output streams
if (myOut != null)
myOut.close( );
if (buf != null)
buf.close( );
}
%>