Java Servlet API doesn't provide any method to handle file upload. So, we have to depend on a library provided by third parties.
This article uses Commons Fileupload library provided by Apache. This can be downloaded from apache website ( jakarta.apache.org). This library is also part of Tomcat 5.0 and Jakarta Struts 1.1.
The following examples shows how to create an HTML form to upload file to a JSP. Then JSP saves the uploaded file in the filename given by client.
<form action="upload.jsp" method="post" enctype="multipart/form-data"> Select File <input type="file" name="file1"> <p> Select Filename <input type="text" size="20" name="filename"> <p> <input type=submit value="Upload"> </form>The following is the JSP used to take file uploaded from client and save it on the server.
<%@page import="org.apache.commons.fileupload.*,java.util.*,java.io.*"%>
<%
// JSP to handle uploading
// Create a new file upload handler
DiskFileUpload upload = new DiskFileUpload();
// parse request
List items = upload.parseRequest(request);
// get uploaded file
FileItem file = (FileItem) items.get(0);
String source = file.getName();
// get taget filename
FileItem name = (FileItem) items.get(1);
String target = name.getString();
File outfile = new File("c:\\tomcat\\temp\\" + target);
file.write(outfile);
out.println("Upload Is Successful!");
%>