FileUpload in JSP  

Posted by Kishore in ,

Its been so long since i last blogged.
This time i am coming up with how to upload files in jsp.

The first and formost thing before doing this is to have the necessary framework to do this uploading.

You can use Apache Common FileUpload or com.oreilly.servlet.

Here i have used the second one.

In the jsp, the form should have the multipart encoding. To do this, please follow the following HTML snippet.

<form action="../AddCandidateServlet" method="post" enctype="multipart/form-data">

But if you do this, then the normail request.getParameter(str) will not be capable of reading the file or other input values from the particular form, so in order to do that specific task, we need to use the external frameworks.

The following example doPost method, reads all parameters and values. Also it stores the file in the specified location.

The following code is not my code, its been extracted from the site.

/*
* DemoParserUploadServlet.java
*
* Example servlet to handle file uploads using MultipartParser for
* decoding the incoming multipart/form-data stream
*/

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

import com.oreilly.servlet.multipart.*;

public class DemoParserUploadServlet extends HttpServlet {
private File dir;

public void init(ServletConfig config) throws ServletException {
super.init(config);
// Read the uploadDir from the servlet parameters
String dirName; //= config.getInitParameter("uploadDir");
dirName="C:\\Program Files\\Apache Group\\Tomcat 4.1\\webapps\\examples\\WEB-INF\\classes\\cal";
//if (dirName == null) {
// throw new ServletException("Please supply uploadDir parameter");
//}
dir = new File(dirName);
if (! dir.isDirectory()) {
throw new ServletException("Supplied uploadDir " + dirName +
" is invalid");
}
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
response.setContentType("text/plain");
out.println("Demo Parser Upload Servlet");
if(false)
{

try {
MultipartParser mp = new MultipartParser(request, 1*1024*1024); // 10MB
Part part;
while ((part = mp.readNextPart()) != null) {
String name = part.getName();
if (part.isParam()) {
// it's a parameter part
ParamPart paramPart = (ParamPart) part;
String value = paramPart.getStringValue();
out.println("param; name=" + name + ", value=" + value);
}
else if (part.isFile()) {
// it's a file part
FilePart filePart = (FilePart) part;
String fileName = filePart.getFileName();
if (fileName != null) {
// the part actually contained a file
long size = filePart.writeTo(dir);
out.println("file; name=" + name + "; filename=" + fileName +
", filePath=" + filePart.getFilePath() +
", content type=" + filePart.getContentType() +
", size=" + size);

}
else {
// the field did not contain a file
out.println("file; name=" + name + "; EMPTY");
}
out.flush();
}
}
}
catch (IOException lEx) {
this.getServletContext().log(lEx, "error reading or saving file");
}
}

// If the next two lines are giving errors, you can comment it. But you will not be able to some other works with it.
CommandProcessor cp=new CommandProcessor();

cp.process(request,response);
HttpSession session=request.getSession();
String fname=(String)session.getAttribute("FILENAME");
out.println("returned from cp"+fname);
}
}

This entry was posted on Oct 17, 2008 at Friday, October 17, 2008 and is filed under , . You can follow any responses to this entry through the comments feed .

0 comments

Post a Comment