Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I'm note sure about your code. Please follows these steps</p> <ol> <li><p>Download the binary distribution of apache commons-fileupload and apache commons-io (FileUpload depends on Commons IO, so make sure you have the version mentioned on the dependencies page in your classpath before continuing.)</p></li> <li><p>Extract both these distributions and copy <code>commons-fileupload-1.2.2.jar</code> and <code>commons-io-2.0.1.jar</code> under WEB-INF/lib folder.</p></li> <li><p>In the Servlet, you need to import <code>javax.servlet</code>,<code>javax.servlet.http</code>, <code>import java.io</code>, <code>java.util,org.apache.commons.fileupload</code>,<code>org.apache.commons.fileupload.servlet</code> and <code>org.apache.commons.fileupload.disk packages</code>.</p></li> </ol> <p>Demo:</p> <p>Create a servlet file under WEB-INF/classes folder</p> <pre><code>package com.me; import javax.servlet.ServletException; import javax.servlet.http.*; import java.io.IOException; import java.io.File; import java.util.List; import java.util.Iterator; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.fileupload.disk.DiskFileItemFactory; public class FileUploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean isMultipart = ServletFileUpload.isMultipartContent(request); java.io.PrintWriter pw=response.getWriter(); final String SUCCESS="/success.jsp"; final String FAIL="/fail.jsp"; if(isMultipart) { try { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = upload.parseRequest(request); pw.print("total : " + items.size()); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); pw.print("total : " + item); if(!item.isFormField()) { String fileName = item.getName(); String destFilePath=getServletContext().getRealPath("/upload/" + fileName); File uploadedFile = new File(destFilePath); item.write(uploadedFile); } } request.setAttribute("message","file has been uploaded successfully!"); }catch(Exception ex) { ex.printStackTrace(); request.setAttribute("message","Cannot upload : " + ex.getMessage()); getServletContext().getRequestDispatcher(FAIL).forward(request,response); } getServletContext().getRequestDispatcher(SUCCESS).forward(request,response); } } } </code></pre> <p>Configure/register the servlet in WEB-INF/web.xml</p> <pre><code>&lt;web-app&gt; &lt;servlet&gt; &lt;servlet-name&gt;fileupload&lt;/servlet-name&gt; &lt;servlet-class&gt;com.me.FileUploadServlet&lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;fileupload&lt;/servlet-name&gt; &lt;url-pattern&gt;/fileupload&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;/web-app&gt; </code></pre> <p>Content of the view (upload.jsp).</p> <p>NOTE: Set enctype attribute of with "multipart/form-data"</p> <pre><code>&lt;form method="post" enctype="multipart/form-data" action="fileupload"&gt; &lt;input type="file" name="file"/&gt; &lt;input type="submit"/&gt; &lt;/form&gt; </code></pre> <p>Content of success.jsp and fail.jsp</p> <pre><code>${message} </code></pre> <p>Create a folder named <code>upload</code> at root of <code>context</code>.</p> <p><strong>JSP version</strong> (This is not a recommended way)</p> <p>upload1.jsp</p> <pre><code>&lt;form method="post" enctype="multipart/form-data" action="showfile.jsp"&gt; &lt;input type="file" name="file"/&gt; &lt;input type="submit"/&gt; &lt;/form&gt; </code></pre> <p>showfile.jsp</p> <pre><code>&lt;%@ page import="java.io.*" %&gt; &lt;%@ page import="java.util.List" %&gt; &lt;%@ page import="java.util.Iterator" %&gt; &lt;%@ page import="org.apache.commons.fileupload.FileItemFactory" %&gt; &lt;%@ page import="org.apache.commons.fileupload.FileItem" %&gt; &lt;%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %&gt; &lt;%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %&gt; &lt;% boolean isMultipart = ServletFileUpload.isMultipartContent(request); String content=""; if(isMultipart) { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = upload.parseRequest(request); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if(!item.isFormField()) { BufferedInputStream buff=new BufferedInputStream(item.getInputStream()); byte []bytes=new byte[buff.available()]; buff.read(bytes,0,bytes.length); content=new String(bytes); } } } %&gt; Content of File: &lt;pre&gt; &lt;%=content%&gt; &lt;/pre&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload