package com.norteksoft.wf.engine.web; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.nio.charset.Charset; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.FileUpload; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; /** * Servlet implementation class for Servlet: UploadServlet * */ public class UploadServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { /** * */ private static final long serialVersionUID = 1L; /* * (non-Java-doc) * * @see javax.servlet.http.HttpServlet#HttpServlet() */ public UploadServlet() { super(); } /* * (non-Java-doc) * * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, * HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/xml;charset=utf-8"); doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/xml;charset=utf-8"); PrintWriter writer = response.getWriter(); try { boolean isMultipart = FileUpload.isMultipartContent(request); String msg = null; byte[] img = null; InputStream uploadStream = null; // only for publish new report if (isMultipart) { // Create a factory for disk-based file items FileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("utf-8"); // Parse the request List items = null; try { items = upload.parseRequest(request); } catch (Exception e) { msg = "Can not parse the request to upload file."; } // Process the uploaded items Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); item.getString("UTF-8"); if (item.isFormField()) { continue; } else { uploadStream = item.getInputStream(); InputStreamReader isr = new InputStreamReader( uploadStream, Charset.forName("UTF-8")); BufferedReader br = new BufferedReader(isr); StringBuffer sb = new StringBuffer(); String temp = br.readLine(); while (temp != null) { sb.append(temp + " "); temp = br.readLine(); } writer.print(sb.toString()); } } } } catch (Exception e) { e.printStackTrace(); } finally { writer.flush(); writer.close(); } } }