package com.michaelbelyakov1967.servlet; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItemIterator; import org.apache.commons.fileupload.FileItemStream; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.fileupload.util.Streams; public abstract class Uploader extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ PrintWriter out = response.getWriter(); boolean isMultipart = ServletFileUpload.isMultipartContent(request); ServletFileUpload upload = new ServletFileUpload(); try{ FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()){ FileItemStream item = iter.next(); String name = item.getName(); InputStream stream = item.openStream(); if(item.isFormField())processParameter(name, Streams.asString(stream)); else processInputStream(name, stream); // out.print("OK"); response.sendRedirect(request.getContextPath() + "success.html"); } } catch(FileUploadException ex){ response.sendRedirect(request.getContextPath() + "failure.html"); // out.print("Error"); throw new ServletException(); } } protected abstract void processInputStream(String name, InputStream is) throws IOException; protected abstract void processParameter(String name, String value); }