요즘은 정말 스택오버플로우의 코드조각을 많이 참고합니다.
2000년에 만들어진 cos.jar를 보내드리고, 아파치 커먼스의 업로드 컴포넌트를 사용해 봤습니다.
https://github.com/kenu/oksample/tree/master/commons-fileup
/*** code from: http://stackoverflow.com/questions/15432024/how-to-upload-a-file-using-commons-file-upload-streaming-api*/@WebServlet("/upload4")public class UploadServlet4 extends HttpServlet {private static final long serialVersionUID = 1L;protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {PrintWriter out = response.getWriter();response.setHeader("Content-Type", "text/html");out.print("Request content length is " + request.getContentLength()+ "<br/>");out.print("Request content type is "+ request.getHeader("Content-Type") + "<br/>");boolean isMultipart = ServletFileUpload.isMultipartContent(request);if (isMultipart) {ServletFileUpload upload = new ServletFileUpload();try {FileItemIterator iter = upload.getItemIterator(request);FileItemStream item = null;String name = "";InputStream stream = null;while (iter.hasNext()) {item = iter.next();name = item.getFieldName();stream = item.openStream();if (item.isFormField()) {out.write("Form field " + name + ": "+ Streams.asString(stream) + "<br/>");} else {name = item.getName();System.out.println("name==" + name);if (name != null && !"".equals(name)) {String fileName = new File(item.getName()).getName();out.write("Client file: " + item.getName()+ " <br/>with file name " + fileName+ " was uploaded.<br/>");File file = new File(getServletContext().getRealPath("/" + fileName));FileOutputStream fos = new FileOutputStream(file);long fileSize = Streams.copy(stream, fos, true);out.write("Size was " + fileSize + " bytes <br/>");out.write("File Path is " + file.getPath()+ "<br/>");}}}} catch (FileUploadException fue) {out.write("fue!!!!!!!!!");}}}}