Hallo,
ich möchte ein File in einem Servlet uploaden,
dazu habe ich mir den Common FileUpload FileUpload - Home
heruntergeladen, in Eclipse eingebunden und dem Tomcat bekannt gemacht.
mit:
wähle ich eine Datei aus.
zum Verarbeiten nutze ich dann:
Müsste doch auch soweit passen, ich möchte bisher nur das überhaupt etwas passiert, noch ohne Weiterverarbeitung oder sonst etwas.
Bekomme dann folgenden StackTrace:
Muss gestehen, wirklich kapiert hab ich den FileUpload noch nicht.
Kann mir jemand helfen, oder mir eine einfache Post-Methode mit einfacher Erklärung geben?
ich möchte ein File in einem Servlet uploaden,
dazu habe ich mir den Common FileUpload FileUpload - Home
heruntergeladen, in Eclipse eingebunden und dem Tomcat bekannt gemacht.
mit:
Java:
out.println(
"<form action=http://localhost:8080/CDVerwaltung/vu enctype=multipart/form-data method=POST>"+
"<input type=file name=excel>"+
"<input type=submit value=Upload>");
wähle ich eine Datei aus.
zum Verarbeiten nutze ich dann:
Java:
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class VerarbeiteUpload
*/
public class VerarbeiteUpload extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
try {
// Check that we have a file upload request
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
FileItemFactory fif = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(fif);
// Parse the request
List <FileItem> items = upload.parseRequest(request);
for(Object element : items)
{
out.println(element);
}
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
Bekomme dann folgenden StackTrace:
Java:
Mrz 06, 2012 3:13:50 PM org.apache.catalina.core.StandardWrapperValve invoke
Schwerwiegend: Servlet.service() for servlet VerarbeiteUpload threw exception
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:361)
at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
at de.fnt.ausbildung.verwaltung.servlet.oberflaeche.VerarbeiteUpload.doPost(VerarbeiteUpload.java:37)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
Muss gestehen, wirklich kapiert hab ich den FileUpload noch nicht.
Kann mir jemand helfen, oder mir eine einfache Post-Methode mit einfacher Erklärung geben?