How to create a web based file upload?
This example using the
Apache Commons FileUpload library to create a simple application for uploading files. The program is divided into two parts, a form using JSP and a servlet for handling the upload process. To run the sample you need to download the Commons FileUpload and Commons IO, get the latest stable version.
The first step is to create the upload form. The form contains two fields for selecting file to be uploaded and a submit button. The form should have an
enctype attribute and the value is
multipart/form-data. We use a post method and the submit process is handled by the
FileUploadDemoServlet as defined in the
The second step is to create the servlet. The
doPost method checks to see if the request contains a multipart content. After that we create a
FileItemFactory, in this example we use the
DiskFileItemFactory which is the default factory for
FileItem. This factory creates an instance of
FileItem and stored it either in memory or in a temporary file on disk depending on its content size.
ServletFileUpload handles multiple files upload that we've specified in the form above sent using the multipart/mixed encoding type. The process of storing the data is determined by the
FileItemFactory passed to the
The next steps is to parse the
multipart/form-data stream by calling the
ServletFileUpload.parseRequest(HttpServletRequest request) method. The parse process return a list of
FileItem. After that we iterate on the list and check to see if
FileItem representing an uploaded file or a a simple form field. If it is represent an uploaded file we write the
FileItem content to a file.
So here is the
Finally we need to register the servlet and create a servlet mapping in the application
web.xml file. Below is the content of