title: How to upload files on server folder using jsp
body: <p>I am trying to upload some images on folder which locates on my server using servlet/jsp.</p>
  
  <p>Below is my code, which is working on my local machine:</p>
  
  <pre><code> import java.io.*;
   import java.util.*;
  
   import javax.servlet.ServletConfig;
   import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
  
     import org.apache.commons.fileupload.FileItem;
      import org.apache.commons.fileupload.FileUploadException;
     import org.apache.commons.fileupload.disk.DiskFileItemFactory;
     import org.apache.commons.fileupload.servlet.ServletFileUpload;
       import org.apache.commons.io.output.*;
  
        public class UploadServlet extends HttpServlet {
  
    private boolean isMultipart;
     private String filePath;
    private int maxFileSize = 1000 * 1024;
     private int maxMemSize = 1000 * 1024;
     private File file ;
  
      public void init( ){
    // Get the file location where it would be stored.
    filePath = 
           getServletContext().getInitParameter("file-upload"); 
     }
      public void doPost(HttpServletRequest request, 
             HttpServletResponse response)
            throws ServletException, java.io.IOException {
    // Check that we have a file upload request
       isMultipart = ServletFileUpload.isMultipartContent(request);
       response.setContentType("text/html");
       java.io.PrintWriter out = response.getWriter( );
        if( !isMultipart ){
       out.println("&lt;html&gt;");
       out.println("&lt;head&gt;");
       out.println("&lt;title&gt;Servlet upload&lt;/title&gt;");  
       out.println("&lt;/head&gt;");
       out.println("&lt;body&gt;");
       out.println("&lt;p&gt;No file uploaded&lt;/p&gt;"); 
       out.println("&lt;/body&gt;");
       out.println("&lt;/html&gt;");
       return;
       }
       DiskFileItemFactory factory = new DiskFileItemFactory();
    // maximum size that will be stored in memory
       factory.setSizeThreshold(maxMemSize);
    // Location to save data that is larger than maxMemSize.
       factory.setRepository(new File(" C:/Users/puneet verma/Downloads/"));  
  
    // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
    // maximum file size to be uploaded.
       upload.setSizeMax( maxFileSize );
  
       try{ 
    // Parse the request to get file items.
       List fileItems = upload.parseRequest(request);
  
    // Process the uploaded file items
        Iterator i = fileItems.iterator();
  
       out.println("&lt;html&gt;");
       out.println("&lt;head&gt;");
       out.println("&lt;title&gt;Servlet upload&lt;/title&gt;");  
       out.println("&lt;/head&gt;");
       out.println("&lt;body&gt;");
       while ( i.hasNext () ) 
       {
         FileItem fi = (FileItem)i.next();
       if ( !fi.isFormField () )  
       {
          // Get the uploaded file parameters
          String fieldName = fi.getFieldName();
          String fileName = fi.getName();
          String contentType = fi.getContentType();
          boolean isInMemory = fi.isInMemory();
          long sizeInBytes = fi.getSize();
          // Write the file
          if( fileName.lastIndexOf("\\") &gt;= 0 ){
             file = new File( filePath + 
             fileName.substring( fileName.lastIndexOf("\\"))) ;
          }else{
             file = new File( filePath + 
             fileName.substring(fileName.lastIndexOf("\\")+1)) ;
          }
          fi.write( file ) ;
          out.println("Uploaded Filename: " + fileName + "&lt;br&gt;");
       }
        }
       out.println("&lt;/body&gt;");
            out.println("&lt;/html&gt;");
       }catch(Exception ex) {
       System.out.println(ex);
       }
         }
             public void doGet(HttpServletRequest request, 
                     HttpServletResponse response)
            throws ServletException, java.io.IOException {
  
             throw new ServletException("GET method used with " +
              getClass( ).getName( )+": POST method required.");
             } 
              }
  </code></pre>
  
  <p>Now my jsp code, where i upload file:</p>
  
  <pre><code>&lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  pageEncoding="ISO-8859-1"%&gt;
  &lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd"&gt;
     &lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;File Uploading Form&lt;/title&gt;
       &lt;/head&gt;
         &lt;body&gt;
          &lt;h3&gt;File Upload:&lt;/h3&gt;
        Select a file to upload: &lt;br /&gt;
         &lt;form action="UploadServlet" method="post"
                      enctype="multipart/form-data"&gt;
        &lt;input type="file" name="file" size="50" /&gt;
         &lt;br /&gt;
      &lt;input type="submit" value="Upload File" /&gt;
         &lt;/form&gt;
        &lt;/body&gt;
          &lt;/html&gt;
  </code></pre>
  
  <p>In My web.xml file, I've included path like this:</p>
  
  <pre><code>      &lt;context-param&gt;
  &lt;description&gt;Location to store uploaded file&lt;/description&gt;
  &lt;param-name&gt;file-upload&lt;/param-name&gt;
  &lt;param-value&gt;
      C:\Users\puneet verma\Downloads\
   &lt;/param-value&gt;
       &lt;/context-param&gt;
  </code></pre>
  
  <p>I've used my server path <a href="http://grand-shopping.com/">http://grand-shopping.com/</a>&lt;"some folder"> , but it's not working here at all.</p>
  
  <p>Libraries i'm using are:</p>
  
  <ol>
  <li>commons-fileupload-1.3.jar</li>
  <li>commons-io-2.2.jar</li>
  </ol>
  
  <p>Can anyone suggest me , how exactly i need to define my server path, in order to upload images successfully.</p>