|
|
| File upload |
Expert:Jagadeesh
I am trying to do a file upload program. But, it shows an error. I am not able to understand that error. Please help me and clear that. 1.Input file sending program ----------------------------------------------------------------------------- <%@ page language="java" %> <HTml> <HEAD><TITLE>Display file upload form to the user</TITLE></HEAD> <% // for uploading the file we used Encrypt type of multipart/form-data and input of file type to browse and submit the file %> <BODY> <FORM ENCTYPE="multipart/form-data" ACTION="single_upload_page.jsp" METHOD=POST> <br><br><br> <center><table border="2" > <tr><center><td colspan="2"><p align="center"><B>PROGRAM FOR UPLOADING THE FILE</B><center></td></tr> <tr><td><b>Choose the file To Upload:</b></td> <td><INPUT NAME="F1" TYPE="file"></td></tr> <tr><td colspan="2"><p align="right"><INPUT TYPE="submit" VALUE="Send File" ></p></td></tr> <table> </center> </FORM> </BODY> </HTML> --------------------------------------------------------------------------- 2. Processing program: single_upload_page.jsp --------------------------------------------------------------------------- <%@ page import="java.io.*" %> <%@ page import="java.util.List" %> <%@ page import="java.util.Iterator" %> <%@ page import="java.io.File" %> <%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%> <%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%> <%@ page import="org.apache.commons.fileupload.*"%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <% long sizeInBytes=0; FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = null; try{ items = upload.parseRequest(request);} catch(Exception ex){out.println("Exxception"+ex);} Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); sizeInBytes = item.getSize(); } out.println(sizeInBytes); //to get the content type information from JSP Request Header String contentType = request.getContentType(); //here we are checking the content type is not equal to Null and as well as the passed data from mulitpart/form-data is greater than or equal to 0 if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) { DataInputStream in = new DataInputStream(request.getInputStream()); //we are taking the length of Content type data int formDataLength = request.getContentLength(); byte dataBytes[] = new byte[formDataLength]; int byteRead = 0; int totalBytesRead = 0; //this loop converting the uploaded file into byte code while (totalBytesRead < formDataLength) { byteRead = in.read(dataBytes, totalBytesRead, formDataLength); totalBytesRead += byteRead; } String file = new String(dataBytes); //for saving the file name //byte b1 = Byte.parseByte(file); out.println(formDataLength); out.println(file.length()); String saveFile = file.substring(file.indexOf("filename=\"") + 10); //out.println(saveFile); /* File up = new File(saveFile); out.println(up.length()+" bytes");*/ saveFile = saveFile.substring(0, saveFile.indexOf("\n")); //out.println(saveFile.length()); /*File up1 = new File(saveFile); out.println(up1.length()+" bytes");*/ /* File name should be given in below savefile variable*/ saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\"")); //saveFile = "801.txt"; int mid= saveFile.lastIndexOf("."); String ext=saveFile.substring(mid+1,saveFile.length()); String fname = saveFile.substring(0,mid); //out.println(saveFile.length()); out.println("Extension"+ext); int lastIndex = contentType.lastIndexOf("="); String boundary = contentType.substring(lastIndex + 1,contentType.length()); int pos; //extracting the index of file pos = file.indexOf("filename=\""); pos = file.indexOf("\n", pos) + 1; pos = file.indexOf("\n", pos) + 1; pos = file.indexOf("\n", pos) + 1; int boundaryLocation = file.indexOf(boundary, pos) - 4; int startPos = ((file.substring(0, pos)).getBytes()).length; int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length; // creating a new file with the same name and writing the content in new file FileOutputStream fileOut = new FileOutputStream("C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/my_class_new1/stud/images/"+fname+"."+ext); fileOut.write(dataBytes, startPos, (endPos - startPos)); fileOut.flush(); fileOut.close(); %><Br><table border="2"><tr><td><b>You have successfully upload the file by the name of:</b> <% out.println(saveFile); %></td></tr></table> <% } %> --------------------------------------------------------------------------- Error: --------------------------------------------------------------------------- HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /test/single_upload_page.jsp at line 15
12: ServletFileUpload upload = new ServletFileUpload(factory); 13: List items = null; 14: try{ 15: items = upload.parseRequest(request);} 16: catch(Exception ex){out.println("Exxception"+ex);} 17: Iterator iter = items.iterator(); 18: while (iter.hasNext())
Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781) org.apache.jsp.test.single_005fupload_005fpage_jsp._jspService(single_005fupload_005fpage_jsp.java:156) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196) org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358) org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126) org.apache.jsp.test.single_005fupload_005fpage_jsp._jspService(single_005fupload_005fpage_jsp.java:74) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
Apache Tomcat/6.0.18 --------------------------------------------------------------------------- This processing file will store the file into a location and stores the file name into database.
PLEASE HELP ME. I AM STRUGGLING WITH THIS ERROR. |
| Answers |
Hi friend,
I checked your program. Please add jar file in lib folder.
commons-fileupload-1.2.jar
commons-io-1.3.2.jar
I hope that, you problem will be solved. I am sending you a link. This link will help you.
http://www.roseindia.net/jsp/file_upload/index.shtml
Thanks.
|
| More Questions |
|
|
Post Answers
Ask Question
Facing Programming Problem?
|
|
|
|
|