Example usage for org.apache.commons.fileupload FileItem getInputStream

List of usage examples for org.apache.commons.fileupload FileItem getInputStream

Introduction

In this page you can find the example usage for org.apache.commons.fileupload FileItem getInputStream.

Prototype

InputStream getInputStream() throws IOException;

Source Link

Document

Returns an java.io.InputStream InputStream that can be used to retrieve the contents of the file.

Usage

From source file:com.openkm.extension.servlet.ZohoFileUploadServlet.java

@SuppressWarnings("unchecked")
protected void service(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    log.info("service({}, {})", request, response);
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    InputStream is = null;//from ww w  .  j  a  v a2s.c  o  m
    String id = "";

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

        // Parse the request and get all parameters and the uploaded file
        List<FileItem> items;

        try {
            items = upload.parseRequest(request);
            for (Iterator<FileItem> it = items.iterator(); it.hasNext();) {
                FileItem item = it.next();
                if (item.isFormField()) {
                    // if (item.getFieldName().equals("format")) { format =
                    // item.getString("UTF-8"); }
                    if (item.getFieldName().equals("id")) {
                        id = item.getString("UTF-8");
                    }
                    // if (item.getFieldName().equals("filename")) {
                    // filename = item.getString("UTF-8"); }
                } else {
                    is = item.getInputStream();
                }
            }

            // Retrieve token
            ZohoToken zot = ZohoTokenDAO.findByPk(id);

            // Save document
            if (Config.REPOSITORY_NATIVE) {
                String sysToken = DbSessionManager.getInstance().getSystemToken();
                String path = OKMRepository.getInstance().getNodePath(sysToken, zot.getNode());
                new DbDocumentModule().checkout(sysToken, path, zot.getUser());
                new DbDocumentModule().checkin(sysToken, path, is, "Modified from Zoho", zot.getUser());
            } else {
                String sysToken = JcrSessionManager.getInstance().getSystemToken();
                String path = OKMRepository.getInstance().getNodePath(sysToken, zot.getNode());
                new JcrDocumentModule().checkout(sysToken, path, zot.getUser());
                new JcrDocumentModule().checkin(sysToken, path, is, "Modified from Zoho", zot.getUser());
            }
        } catch (FileUploadException e) {
            log.error(e.getMessage(), e);
        } catch (PathNotFoundException e) {
            log.error(e.getMessage(), e);
        } catch (RepositoryException e) {
            log.error(e.getMessage(), e);
        } catch (DatabaseException e) {
            log.error(e.getMessage(), e);
        } catch (FileSizeExceededException e) {
            log.error(e.getMessage(), e);
        } catch (UserQuotaExceededException e) {
            log.error(e.getMessage(), e);
        } catch (VirusDetectedException e) {
            log.error(e.getMessage(), e);
        } catch (VersionException e) {
            log.error(e.getMessage(), e);
        } catch (LockException e) {
            log.error(e.getMessage(), e);
        } catch (AccessDeniedException e) {
            log.error(e.getMessage(), e);
        } catch (ExtensionException e) {
            log.error(e.getMessage(), e);
        } catch (AutomationException e) {
            log.error(e.getMessage(), e);
        } finally {
            IOUtils.closeQuietly(is);
        }
    }
}

From source file:forseti.MultipartUtility.java

public void addFilePart(String fieldName, FileItem uploadFile) throws IOException {
    String fileName = uploadFile.getName();
    writer.append("--" + boundary).append(LINE_FEED);
    writer.append("Content-Disposition: form-data; name=\"" + fieldName + "\"; filename=\"" + fileName + "\"")
            .append(LINE_FEED);/*from   w  w  w .ja v a 2  s. c om*/
    writer.append("Content-Type: " + URLConnection.guessContentTypeFromName(fileName)).append(LINE_FEED);
    writer.append("Content-Transfer-Encoding: binary").append(LINE_FEED);
    writer.append(LINE_FEED);
    writer.flush();

    InputStream inputStream = uploadFile.getInputStream();
    byte[] buffer = new byte[4096];
    int bytesRead = -1;
    while ((bytesRead = inputStream.read(buffer)) != -1) {
        outputStream.write(buffer, 0, bytesRead);
    }
    outputStream.flush();
    inputStream.close();

    writer.append(LINE_FEED);
    writer.flush();
}

From source file:com.flexive.war.servlet.CeFileUpload.java

@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse)
        throws ServletException, IOException {
    String renderContent = null;//from   www.  ja  v a2  s.c  o m
    try {

        final HttpServletRequest request = (HttpServletRequest) servletRequest;
        final BeContentEditorBean ceb = null; // = ContentEditorBean.getSingleton().getInstance(request);

        if (ceb == null) {
            renderContent = "No Content Editor Bean is active";
        } else {

            // Create a factory for disk-based file items
            FileItemFactory factory = new DiskFileItemFactory();

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

            // Parse the request
            List /* FileItem */ items = upload.parseRequest(request);

            BinaryDescriptor binary = null;

            String xpath = null;
            for (Object item1 : items) {
                FileItem item = (FileItem) item1;
                if (item.isFormField()) {
                    if (item.getFieldName().equalsIgnoreCase("result")) {
                        renderContent = item.getString().replaceAll("\\\\n", "\\\n");
                    } else if (item.getFieldName().equalsIgnoreCase("xpath")) {
                        xpath = item.getString();
                    }
                } else {
                    InputStream uploadedStream = null;
                    try {
                        uploadedStream = item.getInputStream();
                        String name = item.getName();
                        if (name.indexOf('\\') > 0)
                            name = name.substring(name.lastIndexOf('\\') + 1);
                        binary = new BinaryDescriptor(name, item.getSize(), uploadedStream);
                    } finally {
                        if (uploadedStream != null)
                            uploadedStream.close();
                    }
                }
                //                    System.out.println("Item: " + item.getName());
            }

            //FxContent co = ceb.getContent();
            FxBinary binProperty = new FxBinary(binary);
            //co.setValue(xpath, binProperty);
            //ceb.getContentEngine().prepareSave(co);
        }
    } catch (Throwable t) {
        System.err.println(t.getMessage());
        t.printStackTrace();
        renderContent = t.getMessage();
    }

    // Render the result
    PrintWriter w = servletResponse.getWriter();
    if (renderContent == null) {
        renderContent = "No content";
    }
    w.print(renderContent);
    w.close();
    servletResponse.setContentType("text/html");
    servletResponse.setContentLength(renderContent.length());
    ((HttpServletResponse) servletResponse).setStatus(HttpServletResponse.SC_OK);
}

From source file:com.twinsoft.convertigo.engine.admin.services.global_symbols.Import.java

@Override
protected void doUpload(HttpServletRequest request, Document document, FileItem item) throws Exception {
    String actionImport = request.getParameter("action-import");
    if (actionImport.equals("on")) {
        actionImport = request.getParameter("priority");
    }// w w w  . j  a  va 2  s  . c o m

    if (!item.getName().endsWith(".properties")) {
        ServiceUtils.addMessage(
                document, document.getDocumentElement(), "The import of the grobal symbol file "
                        + item.getName() + " has failed. The file is not valid (.properties required).",
                "error", false);
    }

    //We save the global symbols imported file
    Properties prop = new Properties();
    try {
        prop.load(item.getInputStream());
    } catch (IOException ioe) {
        String message = "Unable to load property file:\n" + ioe.getMessage();
        ServiceUtils.addMessage(document, document.getDocumentElement(), message, "message", false);
        throw new EngineException("Unable to load property file", ioe);
    }

    Engine.theApp.databaseObjectsManager.symbolsUpdate(prop, actionImport);

    String message = "The global symbols file has been successfully imported.";
    Engine.logAdmin.info(message);
    ServiceUtils.addMessage(document, document.getDocumentElement(), message, "message", false);
}

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

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    log.debug("--- BEGIN DOPOST ---");

    request.setCharacterEncoding("UTF-8");
    request.setAttribute(RETVAL, "0");
    request.setAttribute(FILEURL, "");
    request.setAttribute(ERRORMESSAGE, "");
    String newName = "";
    String hash = "";
    // ???//from   w w w.java 2s. co m
    VWBContext context = VWBContext.createContext(request, VWBCommand.ATTACH, null);
    rb = context.getBundle("templates/default");

    if (!context.getVWBSession().isAuthenticated()) {
        request.setAttribute(RETVAL, "212");
        request.setAttribute(ERRORMESSAGE, rb.getString("uploader.nopermission"));
    } else {
        if (enabled) {
            try {
                Map<String, Object> fields = parseFileItem(request);

                FileItem uplFile = (FileItem) fields.get("NewFile");
                String fileNameLong = uplFile.getName();
                fileNameLong = fileNameLong.replace('\\', '/');
                String[] pathParts = fileNameLong.split("/");
                String fileName = pathParts[pathParts.length - 1];

                long fileSize = uplFile.getSize();
                InputStream in = uplFile.getInputStream();

                if (fileSize == 0 || in == null) {
                    if (debug)
                        log.error("The upload file size is 0 or inputstream is null!");
                    request.setAttribute(RETVAL, "211");
                    request.setAttribute(ERRORMESSAGE, rb.getString("error.doc.zerolength"));
                } else {
                    HashMap<String, String> hashMap = new HashMap<String, String>();
                    hashMap.put("title", fileName);
                    hashMap.put("summary", "");
                    hashMap.put("page", (String) fields.get("pageName"));
                    hashMap.put("signature", (String) fields.get("signature"));
                    hashMap.put("rightType", (String) fields.get("rightType"));
                    hashMap.put("cachable", (String) fields.get("cachable"));
                    hash = executeUpload(request, context, in, fileName, fileSize, hashMap, response);
                }
                newName = fileName;
            } catch (Exception ex) {
                log.debug("Error on upload picture", ex);
                request.setAttribute(RETVAL, "203");
                request.setAttribute(ERRORMESSAGE, rb.getString("uploader.parsepara"));
            }
        } else {
            request.setAttribute(RETVAL, "1");
            request.setAttribute(ERRORMESSAGE, rb.getString("uploader.invalidxml"));
        }
    }

    printScript(request, response, newName, hash);

    log.debug("--- END DOPOST ---");
}

From source file:com.alibaba.sample.petstore.biz.impl.StoreManagerImpl.java

private String getPictureName(FileItem picture) throws IOException {
    String imageFileName = null;/*from ww w  .ja  va  2  s.com*/

    if (picture != null) {
        String fileName = picture.getName().replace('\\', '/');

        fileName = fileName.substring(fileName.lastIndexOf("/") + 1);

        String ext = "";
        int index = fileName.lastIndexOf(".");

        if (index > 0) {
            ext = fileName.substring(index);
        }

        File imageFile = File.createTempFile("image_", ext, uploadDir);

        imageFileName = imageFile.getName();

        InputStream is = picture.getInputStream();
        OutputStream os = new BufferedOutputStream(new FileOutputStream(imageFile));

        StreamUtil.io(is, os, true, true);
    }

    return imageFileName;
}

From source file:com.ephesoft.dcma.gwt.foldermanager.server.UploadDownloadFilesServlet.java

private void uploadFile(HttpServletRequest req, String currentBatchUploadFolderName) throws IOException {

    File tempFile = null;/*  w w w .ja  v  a 2s. c  o m*/
    InputStream instream = null;
    OutputStream out = null;
    String uploadFileName = EMPTY_STRING;
    if (ServletFileUpload.isMultipartContent(req)) {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);

        uploadFileName = EMPTY_STRING;
        String uploadFilePath = EMPTY_STRING;
        List<FileItem> items;
        try {
            items = upload.parseRequest(req);
            for (FileItem item : items) {
                if (!item.isFormField()) {
                    uploadFileName = item.getName();
                    if (uploadFileName != null) {
                        uploadFileName = uploadFileName
                                .substring(uploadFileName.lastIndexOf(File.separator) + 1);
                    }
                    uploadFilePath = currentBatchUploadFolderName + File.separator + uploadFileName;

                    try {
                        instream = item.getInputStream();
                        tempFile = new File(uploadFilePath);

                        out = new FileOutputStream(tempFile);
                        byte buf[] = new byte[1024];
                        int len = instream.read(buf);
                        while (len > 0) {
                            out.write(buf, 0, len);
                            len = instream.read(buf);
                        }
                    } catch (FileNotFoundException e) {
                        LOG.error(UNABLE_TO_CREATE_THE_UPLOAD_FOLDER_PLEASE_TRY_AGAIN);

                    } catch (IOException e) {
                        LOG.error(UNABLE_TO_READ_THE_FILE_PLEASE_TRY_AGAIN);
                    } finally {
                        if (out != null) {
                            out.close();
                        }
                        if (instream != null) {
                            instream.close();
                        }
                    }
                }
            }
        } catch (FileUploadException e) {
            LOG.error(UNABLE_TO_READ_THE_FORM_CONTENTS_PLEASE_TRY_AGAIN);
        }
        LOG.info(THE_CURRENT_UPLOAD_FOLDER_NAME_IS + currentBatchUploadFolderName);
        LOG.info(THE_NAME_OF_FILE_BEING_UPLOADED_IS + uploadFileName);
    } else {
        LOG.error(REQUEST_CONTENTS_TYPE_IS_NOT_SUPPORTED);
    }

}

From source file:gov.ymp.slts.doSWTransaction.java

private String processRequest(HttpServletRequest request, HttpServletResponse response) {
    String command = request.getParameter("command");
    String idS = request.getParameter("id");
    int id = Integer.parseInt(idS);
    String prodIDS = request.getParameter("prodid");
    int prodID = Integer.parseInt(prodIDS);
    String transIDS = request.getParameter("transid");
    int transID = Integer.parseInt(transIDS);
    //System.out.println("doSWTransaction - Got Here 1" +"- command: " + command + ", Timestamp: " + Utils.genDateID());

    String outLine = "";
    String nextScript = request.getParameter("nextscript");
    OutputStream toClient;//from www .j a va  2s  . co  m
    HttpSession session = request.getSession();
    boolean success = false;
    String userIDs = (String) session.getAttribute("user.id");
    userIDs = ((userIDs != null) ? userIDs : "0");
    long userID = Long.parseLong(userIDs);

    command = (command != null && command.compareTo(" ") > 0) ? command : "new";
    nextScript = (nextScript != null && nextScript.compareTo(" ") > 0) ? nextScript : "swBrowse.jsp";

    DbConn myConn = null;
    try {

        Context initCtx = new InitialContext();
        String ProductionStatus = (String) initCtx.lookup("java:comp/env/ProductionStatus");
        //String csiSchema = (String) initCtx.lookup("java:comp/env/csi-schema-path");
        String acronym = (String) initCtx.lookup("java:comp/env/SystemAcronym");
        myConn = new DbConn();
        String csiSchema = myConn.getSchemaPath();
        SWProduct sw = new SWProduct(prodID, myConn);
        SWTransactions trn = null;
        if (command.equals("new") || command.equals("update")) {
            //if (command.equals("update")) {
            //System.out.println("doSWTransaction - Got Here 2");
            // process transaction
            if (command.equals("new")) {
                trn = new SWTransactions();
                trn.setProductID(prodID);
            } else {
                trn = new SWTransactions(prodID, transID, myConn);
            }

            String tag = request.getParameter("tag");
            trn.setTag(((tag != null) ? tag : null));
            String serialnumber = request.getParameter("serialnumber");
            trn.setSerialNumber(((serialnumber != null) ? serialnumber : null));
            String purchaseorder = request.getParameter("purchaseorder");
            trn.setPurchaseOrder(((purchaseorder != null) ? purchaseorder : null));
            String dateverified = request.getParameter("dateverified");
            trn.setDateVerified(((dateverified != null) ? Utils.toDate(dateverified) : null));
            String datereceived = request.getParameter("datereceived");
            trn.setDateReceived(((datereceived != null) ? Utils.toDate(datereceived) : null));
            String dateexpires = request.getParameter("dateexpires");
            trn.setDateExpires(((dateexpires != null) ? Utils.toDate(dateexpires) : null));
            String location = request.getParameter("location");
            trn.setLocation(((location != null) ? location : null));
            String licensetype = request.getParameter("licensetype");
            trn.setLicenseType(((licensetype != null) ? licensetype : null));
            String licensecountS = request.getParameter("licensecount");
            if (licensecountS != null && licensecountS.compareTo("       ") > 0) {
                int licensecount = Integer.parseInt(licensecountS);
                trn.setLicenseCount(licensecount);
            }
            String transactiontype = request.getParameter("transactiontype");
            trn.setTransactionType(((transactiontype != null) ? transactiontype : null));
            String relatedtransactionS = request.getParameter("relatedtransaction");
            if (relatedtransactionS != null && relatedtransactionS.compareTo("       ") > 0) {
                int relatedtransaction = Integer.parseInt(relatedtransactionS);
                trn.setRelatedTransaction(relatedtransaction);
            }
            String documentation = request.getParameter("documentation");
            trn.setDocumentation(((documentation != null) ? documentation : null));
            trn.save(myConn);
            transID = trn.getID();
            //System.out.println("doSWTransaction - Got Here 2.5");
            String comments = request.getParameter("comments");
            // process comments
            if (comments != null && comments.compareTo("                            ") > 0) {
                Comments comm = new Comments(prodID, transID, userID, comments, myConn);
            }
            //System.out.println("doSWTransaction - Got Here 3");
            //Process attachments
            String attachCountS = request.getParameter("attachcount");
            int attachCount = Integer.parseInt(attachCountS);
            for (int i = 1; i <= attachCount; i++) {
                Object fileObject = request.getAttribute("attachment" + i);
                if (fileObject != null && !(fileObject instanceof FileUploadException)) {
                    String aTypeS = request.getParameter("attachmenttype" + i);
                    int aType = Integer.parseInt(aTypeS);
                    String aDesc = request.getParameter("attachmentdesc" + i);
                    FileItem fileItem = (FileItem) fileObject;
                    String fileName = fileItem.getName();
                    aDesc = ((aDesc != null && aDesc.compareTo("                                ") > 0) ? aDesc
                            : fileName);
                    fileName = trimFilePath(fileName);
                    InputStream inStream = fileItem.getInputStream();
                    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
                    int myByte = inStream.read();
                    while (myByte >= 0) {
                        outStream.write(myByte);
                        myByte = inStream.read();
                    }
                    Attachment at = new Attachment(prodID, transID, fileName, aType, aDesc, myConn);
                    at.setImage(myConn, outStream);
                }
            }
            //System.out.println("doSWTransaction - Got Here 4");

            success = true;
            outLine = "";
            ALog.logActivity(userID, "slts", 2, "Transaction updated.");

        } else if (command.equals("drop")) {

            //success = true;
            //outLine = "Transaction " + temp + " Removed";
            //ALog.logActivity(userID, "slts", 3, outLine);
        } else if (command.equals("test")) {
            outLine = "test";
        }

    }

    catch (IllegalArgumentException e) {
        outLine = outLine + "IllegalArgumentException caught: " + e.getMessage();
        ALog.logError(userID, "slts", 0, "doSWTransaction error: '" + outLine + "'");
        //log(outLine);
    }

    catch (NullPointerException e) {
        outLine = outLine + "NullPointerException caught: " + e.getMessage();
        ALog.logError(userID, "slts", 0, "doSWTransaction error: '" + outLine + "'");
        //log(outLine);
    }

    //catch (IOException e) {
    //    outLine = outLine + "IOException caught: " + e.getMessage();
    //    ALog.logError(userID, "slts", 0, "doSWTransaction error: '" + outLine + "'");
    //    //log(outLine);
    //}

    //catch (MessagingException e) {
    //    outLine = outLine + "Messaging Exception caught: " + e.getMessage();
    //    ALog.logError(userID, "slts", 0, "doSWTransaction error: '" + outLine + "'");
    //    //log(outLine);
    //}
    catch (Exception e) {
        outLine = outLine + "Exception caught: " + e.getMessage();
        ALog.logError(userID, "slts", 0, "doSWTransaction error: '" + outLine + "'");
        //log(outLine);
    } finally {
        try {
            generateResponse(outLine, command, nextScript, success, response);
        } catch (Exception i) {
        }

        myConn.release();
        //log("Test log message\n");
    }

    return outLine;

}

From source file:emsa.webcoc.cleanup.servlet.UploadServet.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//from  w  ww . j  ava 2 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 {

    isMultipart = ServletFileUpload.isMultipartContent(request);
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    if (!isMultipart) {
        out.println("<html>");
        out.println("<head>");
        out.println("<title>XML file clean up</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<p>No file uploaded</p>");
        out.println("</body>");
        out.println("</html>");
        return;
    }

    DiskFileItemFactory factory = new DiskFileItemFactory();

    //Maximum size that will be stored into memory
    factory.setSizeThreshold(MAXMEMSIZE);
    //Path to save file if its size is bigger than MAXMEMSIZE
    factory.setRepository(new File(REPOSITORY));
    ServletFileUpload upload = new ServletFileUpload(factory);

    out.println("<html>");
    out.println("<head>");
    out.println("<title>XML file clean up</title>");
    out.println("</head>");
    out.println("<body>");

    try {
        List<FileItem> fileItems = upload.parseRequest(request);
        Iterator<FileItem> t = fileItems.iterator();

        while (t.hasNext()) {
            FileItem f = t.next();

            if (!f.isFormField()) {
                if (f.getContentType().equals("text/xml")) { //Check weather or not the uploaded file is an XML file

                    String uniqueFileName = f.getName() + "-" + request.getSession().getId() + ".xml"; //Creates unique name
                    String location = (String) this.getServletContext().getAttribute("newFileLocation");

                    CoCCleanUp clean = new CoCCleanUp(uniqueFileName, location);

                    if (clean.cleanDocument(f.getInputStream()) == 0) {
                        out.println("<h3>" + f.getName() + " was clean</h3>");
                        out.println(clean.printHTMLStatistics());
                        out.println("<br /><form action='download?filename=" + uniqueFileName
                                + "' method='post'><input type='submit' value='Download'/></form></body></html>");
                    } else {
                        out.println("<h3>" + clean.getErrorMessage() + "</h3>");
                        out.println(
                                "<br /><form action='index.html' method='post'><input type='submit' value='Go Back'/></form></body></html>");
                    }
                } else {
                    out.println("<h3>The file " + f.getName() + " is not an xml file</h3>");
                    out.println(
                            "<br /><form action='index.html' method='post'><input type='submit' value='Go Back'/></form></body></html>");
                    logger.warn("The file " + f.getName() + " is not an xml file: " + f.getContentType());
                }
            }
        }

        File repository = factory.getRepository();
        cleanTmpFiles(repository);

    } catch (IOException | FileUploadException e) {
        out.println("<h3>Something went wrong</h3></br>");
        out.println(
                "<br /><form action='index.html' method='post'><input type='submit' value='Go Back'/></form></body></html>");
    }
}

From source file:my.mavenproject10.FileuploadController.java

@RequestMapping(method = RequestMethod.POST)
ModelAndView upload(HttpServletRequest request, HttpServletResponse response) {

    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    String fileName = "";
    int size = 0;
    ArrayList<String> result = new ArrayList<String>();
    if (isMultipart) {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);

        try {/*from w ww  .j a va  2s  .com*/
            List items = upload.parseRequest(request);
            Iterator iterator = items.iterator();
            while (iterator.hasNext()) {
                FileItem item = (FileItem) iterator.next();
                fileName = item.getName();
                System.out.println("file name " + item.getName());
                JAXBContext jc = JAXBContext.newInstance(CustomersType.class);
                SAXParserFactory spf = SAXParserFactory.newInstance();
                XMLReader xmlReader = spf.newSAXParser().getXMLReader();
                InputSource inputSource = new InputSource(
                        new InputStreamReader(item.getInputStream(), "UTF-8"));
                SAXSource source = new SAXSource(xmlReader, inputSource);
                Unmarshaller unmarshaller = jc.createUnmarshaller();
                CustomersType data2 = (CustomersType) unmarshaller.unmarshal(source);
                //System.out.println("size " + data2.getCustomer().size());
                size = data2.getCustomer().size();
                for (CustomerType customer : data2.getCustomer()) {
                    System.out.println(customer.toString());
                }
                //  
                double summ = 0.0;
                HashMap<Integer, Float> ordersMap = new HashMap<Integer, Float>();
                for (CustomerType customer : data2.getCustomer()) {
                    for (OrderType orderType : customer.getOrders().getOrder()) {
                        Float summPerOrder = 0.0f;
                        //System.out.println(orderType);
                        for (PositionType positionType : orderType.getPositions().getPosition()) {
                            //System.out.println(positionType);
                            summPerOrder += positionType.getCount() * positionType.getPrice();
                            summ += positionType.getCount() * positionType.getPrice();
                        }
                        ordersMap.put(orderType.getId(), summPerOrder);
                    }
                }
                summ = new BigDecimal(summ).setScale(2, RoundingMode.UP).doubleValue();
                System.out.println("   " + summ);
                result.add("   " + summ);

                //    
                HashMap<Integer, Float> customersMap = new HashMap<Integer, Float>();
                for (CustomerType customer : data2.getCustomer()) {
                    Float summPerCust = 0.0f;
                    customersMap.put(customer.getId(), summPerCust);
                    for (OrderType orderType : customer.getOrders().getOrder()) {
                        for (PositionType positionType : orderType.getPositions().getPosition()) {
                            summPerCust += positionType.getCount() * positionType.getPrice();
                        }
                    }
                    //System.out.println(customer.getId() + " orders " + summPerCust);
                    customersMap.put(customer.getId(), summPerCust);
                }
                TreeMap sortedMap = sortByValue(customersMap);
                System.out.println(" " + sortedMap.keySet().toArray()[0]
                        + "    : " + sortedMap.get(sortedMap.firstKey()));
                result.add(" " + sortedMap.keySet().toArray()[0] + "    : "
                        + sortedMap.get(sortedMap.firstKey()));

                //  
                TreeMap sortedMapOrders = sortByValue(ordersMap);
                System.out.println("   " + sortedMapOrders.keySet().toArray()[0]
                        + " : " + sortedMapOrders.get(sortedMapOrders.firstKey()));
                result.add("   " + sortedMapOrders.keySet().toArray()[0] + " : "
                        + sortedMapOrders.get(sortedMapOrders.firstKey()));

                //  
                System.out.println("   "
                        + sortedMapOrders.keySet().toArray()[sortedMapOrders.keySet().toArray().length - 1]
                        + " : " + sortedMapOrders.get(sortedMapOrders.lastKey()));
                result.add("   "
                        + sortedMapOrders.keySet().toArray()[sortedMapOrders.keySet().toArray().length - 1]
                        + " : " + sortedMapOrders.get(sortedMapOrders.lastKey()));

                // 
                System.out.println("  " + sortedMapOrders.size());
                result.add("  " + sortedMapOrders.size());

                //  
                ArrayList<Float> floats = new ArrayList<Float>(sortedMapOrders.values());
                Float summAvg = 0.0f;
                Float avg = 0.0f;
                for (Float f : floats) {
                    summAvg += f;
                }
                avg = new BigDecimal(summAvg / floats.size()).setScale(2, RoundingMode.UP).floatValue();
                System.out.println("   " + avg);
                result.add("   " + avg);

            }
        } catch (FileUploadException e) {
            System.out.println("FileUploadException:- " + e.getMessage());
        } catch (JAXBException ex) {
            //Logger.getLogger(FileuploadController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(FileuploadController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(FileuploadController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParserConfigurationException ex) {
            Logger.getLogger(FileuploadController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SAXException ex) {
            Logger.getLogger(FileuploadController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    ModelAndView modelAndView = new ModelAndView("fileuploadsuccess");
    modelAndView.addObject("files", result);
    modelAndView.addObject("name", fileName);
    modelAndView.addObject("size", size);
    return modelAndView;

}