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);
}