Example usage for org.apache.commons.fileupload.servlet ServletFileUpload parseRequest

List of usage examples for org.apache.commons.fileupload.servlet ServletFileUpload parseRequest

Introduction

In this page you can find the example usage for org.apache.commons.fileupload.servlet ServletFileUpload parseRequest.

Prototype

public List  parseRequest(HttpServletRequest request) throws FileUploadException 

Source Link

Document

Processes an <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a> compliant <code>multipart/form-data</code> stream.

Usage

From source file:com.liferay.server.manager.internal.executor.PluginExecutor.java

protected FileItem getFileItem(HttpServletRequest request) throws FileUploadException {

    DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();

    ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);

    List<FileItem> fileItems = servletFileUpload.parseRequest(request);

    for (FileItem fileItem : fileItems) {
        if (!fileItem.isFormField()) {
            return fileItem;
        }/*from   w  w  w.j  a v a 2s .  c o  m*/
    }

    return null;
}

From source file:Control.Upload.java

/**
 * Handles the HTTP <code>POST</code> method.
 *
 * @param request servlet request/*w w  w  . jav  a 2 s .c o  m*/
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    int k = 0;
    String userid = null;
    ArrayList<String> nameImage = new ArrayList<String>();
    String album = null;
    ArrayList<String> typeImage = new ArrayList<String>();
    ArrayList<Integer> priceImage = new ArrayList<Integer>();

    String tempPath = "/temp";
    String absoluteTempPath = this.getServletContext().getRealPath(tempPath);
    if (absoluteTempPath == null) {
        String serverContext = this.getServletContext().getRealPath("/");
        String createPath = serverContext + "temp";
        File tempfolder = new File(createPath);
        tempfolder.mkdir();
        absoluteTempPath = this.getServletContext().getRealPath(tempPath);
    }
    String absoluteFilePath = this.getServletContext().getRealPath("/data/Image");
    int maxFileSize = 50 * 1024;
    int maxMemSize = 4 * 1024;

    try {
        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(maxMemSize);
        File file = new File(absoluteTempPath);

        factory.setRepository(file);
        ServletFileUpload upload = new ServletFileUpload(factory);

        //upload.setProgressListener(new MyProgressListener(out));
        List<FileItem> items = upload.parseRequest(request);

        if (items.size() > 0) {
            for (int i = items.size() - 1; i >= 0; i--) {
                if (items.get(i).isFormField()) {
                    if (null != items.get(i).getFieldName())
                        switch (items.get(i).getFieldName()) {
                        case "userid":
                            userid = items.get(i).getString();
                            break;
                        case "nameImageUpload":
                            nameImage.add(items.get(i).getString());
                            break;
                        case "albumUpload":
                            album = items.get(i).getString();
                            break;
                        case "typeImageUpload":
                            typeImage.add(items.get(i).getString());
                            break;
                        case "priceImageUpload":
                            priceImage.add(parseInt(items.get(i).getString()));
                            break;
                        default:
                            break;
                        }
                } else if ("images".equals(items.get(i).getFieldName())) {
                    if (!"".equals(items.get(i).getName()) && !items.get(i).getName().isEmpty()) {
                        String extension = null;
                        String newLink;
                        Integer newIntIdImage = Image.listImg.size() + k;
                        String newIdImage = newIntIdImage.toString();
                        if (items.get(i).getName().endsWith("jpg")) {
                            newLink = "/Image/" + newIdImage + ".jpg";
                            file = new File(absoluteFilePath + "//" + newIdImage + ".jpg");
                        } else if (items.get(i).getName().endsWith("JPG")) {
                            newLink = "/Image/" + newIdImage + ".jpg";
                            file = new File(absoluteFilePath + "//" + newIdImage + ".jpg");
                        } else if (items.get(i).getName().endsWith("png")) {
                            newLink = "/Image/" + newIdImage + ".png";
                            file = new File(absoluteFilePath + "//" + newIdImage + ".png");
                        } else if (items.get(i).getName().endsWith("PNG")) {
                            newLink = "/Image/" + newIdImage + ".png";
                            file = new File(absoluteFilePath + "//" + newIdImage + ".png");
                        } else {
                            return;
                        }
                        boolean check = Image_DAL.addImage(newLink, userid, album, nameImage.get(0),
                                typeImage.get(0), priceImage.get(0));
                        nameImage.remove(0);
                        typeImage.remove(0);
                        priceImage.remove(0);
                        if (check) {
                            items.get(i).write(file);
                            k++;
                        }
                    }
                } else {
                }
            }
            request.setAttribute("user", userid);
            RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("/index");
            dispatcher.forward(request, response);
            return;
        }
        for (int i = items.size() - 1; i >= 0; i--)
            if (items.get(i).isFormField())
                if ("userid".equals(items.get(i).getFieldName()))
                    userid = items.get(i).getString();

        request.setAttribute("error", "No file upload");
        RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("/index");
        dispatcher.forward(request, response);
    } catch (Exception ex) {
        System.err.println(ex);
    }
}

From source file:com.apt.ajax.controller.AjaxUpload.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.// w w  w  .j a v a2  s .  co m
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");

    String uploadDir = request.getServletContext().getRealPath(File.separator) + "upload";
    Gson gson = new Gson();
    MessageBean messageBean = new MessageBean();
    try (PrintWriter out = response.getWriter()) {
        /* TODO output your page here. You may use following sample code. */
        File x = new File(uploadDir);
        if (!x.exists()) {
            x.mkdir();
        }
        boolean isMultiplePart = ServletFileUpload.isMultipartContent(request);

        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        if (!isMultiplePart) {

        } else {
            List items = null;

            try {
                items = upload.parseRequest(request);
                if (items != null) {
                    Iterator iterator = items.iterator();
                    String assignmentId = "";
                    String stuid = "";
                    while (iterator.hasNext()) {
                        FileItem item = (FileItem) iterator.next();
                        if (item.isFormField()) {
                            String fieldName = item.getFieldName();
                            if (fieldName.equals("assignmentid")) {
                                assignmentId = item.getString();
                                File c = new File(uploadDir + File.separator + assignmentId);
                                if (!c.exists()) {
                                    c.mkdir();
                                }
                                uploadDir = c.getPath();
                                if (request.getSession().getAttribute("studentId") != null) {
                                    stuid = request.getSession().getAttribute("studentId").toString();
                                    File stuDir = new File(uploadDir + File.separator + stuid);
                                    if (!stuDir.exists()) {
                                        stuDir.mkdir();
                                    }
                                    uploadDir = stuDir.getPath();
                                }
                            }
                        } else {
                            String itemname = item.getName();
                            if (itemname == null || itemname.equals("")) {
                            } else {
                                String filename = FilenameUtils.getName(itemname);
                                File f = new File(uploadDir + File.separator + filename);
                                String[] split = f.getPath().split(Pattern.quote(File.separator) + "upload"
                                        + Pattern.quote(File.separator));
                                String save = split[split.length - 1];
                                if (assignmentId != null && !assignmentId.equals("")) {
                                    if (stuid != null && !stuid.equals("")) {

                                    } else {
                                        Assignment assignment = new AssignmentFacade()
                                                .findAssignment(Integer.parseInt(assignmentId));
                                        assignment.setUrl(save);
                                        new AssignmentFacade().updateAssignment(assignment);
                                    }
                                }
                                item.write(f);
                                messageBean.setStatus(0);
                                messageBean.setMessage("File " + f.getName() + " sucessfuly uploaded");

                            }
                        }
                    }
                }

                gson.toJson(messageBean, out);
            } catch (Exception ex) {
                messageBean.setStatus(1);
                messageBean.setMessage(ex.getMessage());
                gson.toJson(messageBean, out);
            }

        }
    } catch (Exception ex) {
        Logger.getLogger(AjaxUpload.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:io.milton.servlet.ServletRequest.java

@Override
public void parseRequestParameters(Map<String, String> params, Map<String, io.milton.http.FileItem> files)
        throws RequestParseException {
    try {/*from w  w w  . ja  v a 2  s. c  om*/
        if (isMultiPart()) {
            log.trace("parseRequestParameters: isMultiPart");
            UploadListener listener = new UploadListener();
            MonitoredDiskFileItemFactory factory = new MonitoredDiskFileItemFactory(listener);
            ServletFileUpload upload = new ServletFileUpload(factory);
            List items = upload.parseRequest(request);

            parseQueryString(params);

            for (Object o : items) {
                FileItem item = (FileItem) o;
                if (item.isFormField()) {
                    params.put(item.getFieldName(), item.getString());
                } else {
                    // See http://jira.ettrema.com:8080/browse/MIL-118 - ServletRequest#parseRequestParameters overwrites multiple file uploads when using input type="file" multiple="multiple"                        
                    String itemKey = item.getFieldName();
                    if (files.containsKey(itemKey)) {
                        int count = 1;
                        while (files.containsKey(itemKey + count)) {
                            count++;
                        }
                        itemKey = itemKey + count;
                    }
                    files.put(itemKey, new FileItemWrapper(item));
                }
            }
        } else {
            for (Enumeration en = request.getParameterNames(); en.hasMoreElements();) {
                String nm = (String) en.nextElement();
                String[] vals = request.getParameterValues(nm);
                if (vals.length == 1) {
                    params.put(nm, vals[0]);
                } else {
                    StringBuilder sb = new StringBuilder();
                    for (String s : vals) {
                        sb.append(s).append(",");
                    }
                    if (sb.length() > 0) {
                        sb.deleteCharAt(sb.length() - 1); // remove last comma
                    }
                    params.put(nm, sb.toString());
                }
            }
        }
    } catch (FileUploadException ex) {
        throw new RequestParseException("FileUploadException", ex);
    } catch (Throwable ex) {
        throw new RequestParseException(ex.getMessage(), ex);
    }
}

From source file:gov.nih.nci.evs.browser.servlet.UploadServlet.java

/**
 * Process the specified HTTP request, and create the corresponding HTTP
 * response (or forward to another web component that will create it).
 *
 * @param request The HTTP request we are processing
 * @param response The HTTP response we are creating
 *
 * @exception IOException if an input/output error occurs
 * @exception ServletException if a servlet exception occurs
 *//*  w ww .  j  a va2s .  c o m*/

public void execute(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {
    // Determine request by attributes
    String action = (String) request.getParameter("action");
    String type = (String) request.getParameter("type");

    System.out.println("(*) UploadServlet ...action " + action);
    if (action == null) {
        action = "upload_data";
    }

    DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
    /*
     *Set the size threshold, above which content will be stored on disk.
     */
    fileItemFactory.setSizeThreshold(1 * 1024 * 1024); //1 MB
    /*
     * Set the temporary directory to store the uploaded files of size above threshold.
     */
    //fileItemFactory.setRepository(tmpDir);

    ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory);
    try {
        /*
         * Parse the request
         */
        List items = uploadHandler.parseRequest(request);
        Iterator itr = items.iterator();
        while (itr.hasNext()) {
            FileItem item = (FileItem) itr.next();
            /*
             * Handle Form Fields.
             */
            if (item.isFormField()) {
                System.out.println("File Name = " + item.getFieldName() + ", Value = " + item.getString());
                //String s = convertStreamToString(item.getInputStream(), item.getSize());
                //System.out.println(s);

            } else {
                //Handle Uploaded files.
                System.out.println("Field Name = " + item.getFieldName() + ", File Name = " + item.getName()
                        + ", Content type = " + item.getContentType() + ", File Size = " + item.getSize());

                String s = convertStreamToString(item.getInputStream(), item.getSize());
                //System.out.println(s);

                request.getSession().setAttribute("action", action);

                if (action.compareTo("upload_data") == 0) {
                    request.getSession().setAttribute("codes", s);
                } else {
                    Mapping mapping = new Mapping().toMapping(s);

                    System.out.println("Mapping " + mapping.getMappingName() + " uploaded.");
                    System.out.println("Mapping version: " + mapping.getMappingVersion());

                    MappingObject obj = mapping.toMappingObject();
                    HashMap mappings = (HashMap) request.getSession().getAttribute("mappings");
                    if (mappings == null) {
                        mappings = new HashMap();
                    }
                    mappings.put(obj.getKey(), obj);
                    request.getSession().setAttribute("mappings", mappings);
                }
            }
        }
    } catch (FileUploadException ex) {
        log("Error encountered while parsing the request", ex);
    } catch (Exception ex) {
        log("Error encountered while uploading file", ex);
    }

    //long ms = System.currentTimeMillis();

    if (action.compareTo("upload_data") == 0) {
        if (type.compareTo("codingscheme") == 0) {
            response.sendRedirect(
                    response.encodeRedirectURL(request.getContextPath() + "/pages/codingscheme_data.jsf"));
        } else if (type.compareTo("ncimeta") == 0) {
            response.sendRedirect(
                    response.encodeRedirectURL(request.getContextPath() + "/pages/ncimeta_data.jsf"));
        } else if (type.compareTo("valueset") == 0) {
            response.sendRedirect(
                    response.encodeRedirectURL(request.getContextPath() + "/pages/valueset_data.jsf"));
        }
    } else {
        response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + "/pages/home.jsf"));
    }

}

From source file:cServ.AltaDoc.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from  www  .  j av a 2  s. c  om*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        System.out.println("hit altadoc");

        //begin database operation
        String nomArch = "";
        String nombre = "";
        String contra = "";
        int id = 0;
        System.out.println(request.getParameter("idprofe"));
        String displayString = "Contrasea incorrecta";
        String divColor = "danger";
        String rdrUrl = "<meta http-equiv=\"refresh\" content=\"2;url=pages/profesor/adminDocs.jsp\" >";

        //start file up
        FileItemFactory factory = new DiskFileItemFactory();

        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);

        // Parse the request
        List items = null;
        try {
            items = upload.parseRequest(request);
        } catch (Exception e) {
            e.printStackTrace();
        }

        for (Iterator it = items.iterator(); it.hasNext();) {
            DiskFileItem diskFileItem = (DiskFileItem) it.next();
            if (diskFileItem.isFormField()) {
                String fieldname = diskFileItem.getFieldName();
                String fieldvalue = diskFileItem.getString();
                System.out.println("fn: " + fieldname + " fv " + fieldvalue);
                if (fieldname.equals("nombre")) {
                    nombre = fieldvalue;
                } else if (fieldname.equals("contra")) {
                    contra = fieldvalue;
                } else if (fieldname.equals("idprofe")) {
                    id = Integer.parseInt(fieldvalue);
                }

            } else {

                //start getpath
                String relativeWebPath = "/../../web/pages/profesor/adminDocsPanels/docDump/";
                System.out.println("relative thing " + getServletContext().getRealPath(relativeWebPath));
                System.out.println(relativeWebPath);
                String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
                System.out.println("complete path " + absoluteDiskPath + "\\" + nomArch);
                absoluteDiskPath += "\\" + nomArch;
                //end getpath

                byte[] fileBytes = diskFileItem.get();
                nomArch = diskFileItem.getName();
                File file = new File(absoluteDiskPath + diskFileItem.getName());
                FileOutputStream fileOutputStream = new FileOutputStream(file);
                fileOutputStream.write(fileBytes);
                fileOutputStream.flush();
            }
        }

        //end file up
        //start db insertion
        Validator valid = new Validator();
        valid.ValidatePDF(nomArch);
        if (valid.isValid() == true) {
            String adString = altaDoc(id, nomArch);
            if (adString.equals("operacion realizada")) {
                displayString = "Documento dado de alta";
                divColor = "success";
                rdrUrl = "<meta http-equiv=\"refresh\" content=\"2;url=pages/profesor/adminDocs.jsp\" >";
            }
        } else {
            displayString = "Archivo no vlido";
            divColor = "danger";
            rdrUrl = "<meta http-equiv=\"refresh\" content=\"2;url=pages/profesor/adminDocs.jsp\" >";
        }
        //end db insertion

        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<link rel=\"stylesheet\" href=\"css/style.css\">");
        out.println("<title>Servlet AltaGrupo</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<div class=\"container\">\n" + "            <div class=\"row\">\n"
                + "                <br><br>\n" + "                <div class=\"panel panel-" + divColor
                + "\">\n" + "                    <div class=\"panel-heading\">\n"
                + "                        <h3 class=\"panel-title\">Espera</h3>\n"
                + "                    </div>\n" + "                    <div class=\"panel-body\">\n"
                + "                        " + displayString + " \n" + "                    </div>\n"
                + "                </div>\n" + "            </div>\n" + "        </div>");
        out.println(rdrUrl);
        out.println("</body>");
        out.println("</html>");
        //end database operation
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

From source file:com.sun.portal.portletcontainer.driver.admin.UploadServlet.java

private void uploadFile(HttpServletRequest request, HttpServletResponse response)
        throws FileUploadException, PortletRegistryException {

    HttpSession session = AdminUtils.getClearedSession(request);

    SilverpeasDiskFileItemFactory factory = new SilverpeasDiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    upload.setSizeMax(maxUploadSize);//from w  ww . j a v  a2s .  com

    // Parse the request
    @SuppressWarnings("unchecked")
    List<FileItem> fileItems = upload.parseRequest(request);
    Iterator<FileItem> itr = fileItems.iterator();

    while (itr.hasNext()) {
        FileItem fi = itr.next();
        // The following is not being used since in the upload form we are
        // not using any
        // non-file form fields. If you do put in some form fields you want
        // to use,
        // then this is where you will get the values of the form fields. -
        // Sandeep
        if (fi.isFormField()) {
            String name = fi.getFieldName();
            String value = fi.getString();
        }
    }

    String[] fileNames = new String[2];
    itr = fileItems.iterator();
    int i = 0;
    while (itr.hasNext()) {
        FileItem fi = itr.next();
        if (!fi.isFormField()) {
            fileNames[i] = processFileItem(fi);
            i++;
        }
    }
    deployPortlet(fileNames, session);
    // refresh portlet list
    AdminUtils.refreshList(request, getLanguage(request));
}

From source file:com.eryansky.common.web.servlet.kindeditor.FileUploadServlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String dirName = request.getParameter("dir");
    if (dirName == null) {
        dirName = "image";
    }//from  ww w .  ja  v  a 2  s.  com

    //?
    String uploadPath = getInitParameter("UPLOAD_PATH");
    if (StringUtils.isNotBlank(uploadPath)) {
        configPath = uploadPath;
    }

    if ("image".equals(dirName)) {

        //?
        Long size = Long.parseLong(getInitParameter("Img_MAX_SIZE"));
        if (size != null) {
            maxSize = size;
        }

        //(?gif, jpg, jpeg, png, bmp)
        String type = getInitParameter("Img_YPES");
        if (StringUtils.isNotBlank(type)) {
            extMap.put("image", type);
        }

    } else {
        //?
        Long size = Long.parseLong(getInitParameter("File_MAX_SIZE"));
        if (size != null) {
            maxSize = size;
        }

        if ("file".equals(dirName)) {
            //(doc, xls, ppt, pdf, txt, rar, zip)
            String type = getInitParameter("File_TYPES");
            if (StringUtils.isNotBlank(type)) {
                extMap.put("file", type);
            }
        }
    }

    if (StringUtils.isBlank(configPath)) {
        ServletUtils.renderText(getError("?!"), response);
        return;
    }

    //?
    String savePath = this.getServletContext().getRealPath("/") + configPath;

    //?URL
    String saveUrl = request.getContextPath() + "/" + configPath;

    if (!ServletFileUpload.isMultipartContent(request)) {
        ServletUtils.renderText(getError(""), response);
        return;
    }
    //
    File uploadDir = new File(savePath);
    if (!uploadDir.isDirectory()) {
        FileUtil.createDirectory(uploadDir.getPath());
        //         ServletUtils.rendText(getError("?"), response);
        //         return;
    }
    //??
    if (!uploadDir.canWrite()) {
        ServletUtils.renderText(getError("??"), response);
        return;
    }

    if (!extMap.containsKey(dirName)) {
        ServletUtils.renderText(getError("???"), response);
        return;
    }
    //
    savePath += dirName + "/";
    saveUrl += dirName + "/";
    File saveDirFile = new File(savePath);
    if (!saveDirFile.exists()) {
        saveDirFile.mkdirs();
    }
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    String ymd = sdf.format(new Date());
    savePath += ymd + "/";
    saveUrl += ymd + "/";
    File dirFile = new File(savePath);
    if (!dirFile.exists()) {
        dirFile.mkdirs();
    }

    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    upload.setHeaderEncoding("UTF-8");

    try {
        List items = upload.parseRequest(request);
        Iterator itr = items.iterator();
        while (itr.hasNext()) {
            FileItem item = (FileItem) itr.next();
            String fileName = item.getName();
            long fileSize = item.getSize();
            if (!item.isFormField()) {
                //?
                if (item.getSize() > maxSize) {
                    ServletUtils.renderText(getError("??"), response);
                    return;
                }
                //??
                String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
                if (!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)) {
                    ServletUtils
                            .renderText(getError("??????\n??"
                                    + extMap.get(dirName) + "?"), response);
                    return;
                }

                SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
                String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;
                try {
                    File uploadedFile = new File(savePath, newFileName);
                    item.write(uploadedFile);
                } catch (Exception e) {
                    ServletUtils.renderText(getError(""), response);
                    return;
                }

                Map<String, Object> obj = Maps.newHashMap();
                obj.put("error", 0);
                obj.put("url", saveUrl + newFileName);
                ServletUtils.renderText(obj, response);
            }
        }
    } catch (FileUploadException e1) {
        e1.printStackTrace();
    }

}

From source file:cn.vlabs.duckling.vwb.ui.servlet.SimpleUploaderServlet.java

private Map<String, Object> parseFileItem(HttpServletRequest request)
        throws FileUploadException, UnsupportedEncodingException {
    DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(fileItemFactory);
    upload.setHeaderEncoding("UTF-8");
    List<?> items = upload.parseRequest(request);

    Map<String, Object> fields = new HashMap<String, Object>();

    Iterator<?> iter = items.iterator();
    while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();
        if (item.isFormField()) {
            fields.put(item.getFieldName(), item.getString("UTF-8"));
        } else {// ww  w .  j  ava 2  s  .  co  m
            fields.put(item.getFieldName(), item);
        }
    }
    return fields;
}

From source file:com.lushapp.common.web.servlet.kindeditor.FileUploadServlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String dirName = request.getParameter("dir");
    if (dirName == null) {
        dirName = "image";
    }/*from  www  .j a v a 2s .  c o  m*/

    //?
    String uploadPath = getInitParameter("UPLOAD_PATH");
    if (StringUtils.isNotBlank(uploadPath)) {
        configPath = uploadPath;
    }

    if ("image".equals(dirName)) {

        //?
        Long size = Long.parseLong(getInitParameter("Img_MAX_SIZE"));
        if (size != null) {
            maxSize = size;
        }

        //(?gif, jpg, jpeg, png, bmp)
        String type = getInitParameter("Img_YPES");
        if (StringUtils.isNotBlank(type)) {
            extMap.put("image", type);
        }

    } else {
        //?
        Long size = Long.parseLong(getInitParameter("File_MAX_SIZE"));
        if (size != null) {
            maxSize = size;
        }

        if ("file".equals(dirName)) {
            //(doc, xls, ppt, pdf, txt, rar, zip)
            String type = getInitParameter("File_TYPES");
            if (StringUtils.isNotBlank(type)) {
                extMap.put("file", type);
            }
        }
    }

    if (StringUtils.isBlank(configPath)) {
        WebUtils.renderText(response, getError("?!"));
        return;
    }

    //?
    String savePath = this.getServletContext().getRealPath("/") + configPath;

    //?URL
    String saveUrl = request.getContextPath() + "/" + configPath;

    if (!ServletFileUpload.isMultipartContent(request)) {
        WebUtils.renderText(response, getError(""));
        return;
    }
    //
    File uploadDir = new File(savePath);
    if (!uploadDir.isDirectory()) {
        FileUtil.createDirectory(uploadDir.getPath());
        //         ServletUtils.rendText(getError("?"), response);
        //         return;
    }
    //??
    if (!uploadDir.canWrite()) {
        WebUtils.renderText(response, getError("??"));
        return;
    }

    if (!extMap.containsKey(dirName)) {
        WebUtils.renderText(response, getError("???"));
        return;
    }
    //
    savePath += dirName + "/";
    saveUrl += dirName + "/";
    File saveDirFile = new File(savePath);
    if (!saveDirFile.exists()) {
        saveDirFile.mkdirs();
    }
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    String ymd = sdf.format(new Date());
    savePath += ymd + "/";
    saveUrl += ymd + "/";
    File dirFile = new File(savePath);
    if (!dirFile.exists()) {
        dirFile.mkdirs();
    }

    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    upload.setHeaderEncoding("UTF-8");

    try {
        List items = upload.parseRequest(request);
        Iterator itr = items.iterator();
        while (itr.hasNext()) {
            FileItem item = (FileItem) itr.next();
            String fileName = item.getName();
            long fileSize = item.getSize();
            if (!item.isFormField()) {
                //?
                if (item.getSize() > maxSize) {
                    WebUtils.renderText(response, getError("??"));
                    return;
                }
                //??
                String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
                if (!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)) {
                    WebUtils.renderText(response,
                            getError("??????\n??"
                                    + extMap.get(dirName) + "?"));
                    return;
                }

                SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
                String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;
                try {
                    File uploadedFile = new File(savePath, newFileName);
                    item.write(uploadedFile);
                } catch (Exception e) {
                    WebUtils.renderText(response, getError(""));
                    return;
                }

                Map<String, Object> obj = Maps.newHashMap();
                obj.put("error", 0);
                obj.put("url", saveUrl + newFileName);
                WebUtils.renderText(response, obj);
            }
        }
    } catch (FileUploadException e1) {
        e1.printStackTrace();
    }

}