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:it.fub.jardin.server.Upload.java

@Override
public void doPost(final HttpServletRequest request, final HttpServletResponse response)
/* throws ServletException, IOException */ {
    try {/*from w ww.  ja va  2  s.c  om*/
        this.dbProperties = new DbProperties();
    } catch (VisibleException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    this.dbConnectionHandler = this.dbProperties.getConnectionHandler();
    try {
        this.dbUtils = new DbUtils(dbProperties, dbConnectionHandler);
    } catch (VisibleException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    this.mailUtility = new MailUtility(dbConnectionHandler.getDbConnectionParameters().getMailSmtpHost(),
            dbConnectionHandler.getDbConnectionParameters().getMailSmtpAuth(),
            dbConnectionHandler.getDbConnectionParameters().getMailSmtpUser(),
            dbConnectionHandler.getDbConnectionParameters().getMailSmtpPass(),
            dbConnectionHandler.getDbConnectionParameters().getMailSmtpSender(),
            dbConnectionHandler.getDbConnectionParameters().getMailSmtpSysadmin());

    subSystem = dbConnectionHandler.getDbConnectionParameters().getSubSystem();
    // Create a factory for disk-based file items
    DiskFileItemFactory factory = new DiskFileItemFactory();

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

    // Set overall request size constraint
    upload.setSizeMax(MAX_SIZE);

    String m = null;
    try {

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

        // Process the uploaded items
        Iterator<?> iter = items.iterator();
        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();

            if (item.isFormField()) {
                this.processFormField(item);
            } else {
                m = this.processUploadedFile(item);
            }
        }
        response.setContentType("text/plain");
        response.getWriter().write(m);
    } catch (Exception e) {
        //      Log.warn("Errore durante l'upload del file", e);
    }
}

From source file:com.jkingii.web.files.upload.java

/**
 * Processes requests for both HTTP//from   w w  w  .j a  v  a  2s  . c o  m
 * <code>GET</code> and
 * <code>POST</code> methods.
 *
 * @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 {
    // Check that we have a file upload request
    isMultipart = ServletFileUpload.isMultipartContent(request);
    FileDataBase fdb = null;
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        CSession cSession = (CSession) request.getSession().getAttribute("cSession");

        if (!isMultipart) {
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet upload</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 in memory
        factory.setSizeThreshold(maxMemSize);
        // Location to save data that is larger than maxMemSize.
        factory.setRepository(new File(tempDir));

        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
        // maximum file size to be uploaded.
        upload.setSizeMax(maxFileSize);

        // Parse the request to get file items.
        List fileItems = upload.parseRequest(request);

        // Se verifica si el usuario tiene permisos de escritura.
        ColumnasPermisos permiso = checkPermisos(request, fileItems, out);
        if (permiso == null) {
            return;
        }

        // Process the uploaded file items
        Iterator i = fileItems.iterator();

        while (i.hasNext()) {
            FileItem fi = (FileItem) i.next();
            MessageDigest md5 = MessageDigest.getInstance("MD5");

            if (!fi.isFormField()) {
                // Get the uploaded file parameters
                logger.info("Prosess Request: obteniendo session: [" + cSession + "] jsessionid = ["
                        + request.getSession().getId() + "]", this);
                fdb = new FileDataBase(GenKey.newKey(), cSession.getAccessInfo().getEmpresa(),
                        cSession.getAccessInfo().getUserInfo(), new Date().getTime(), fi.getName(),
                        new MimeType().factory().getMime(fi.getName(), fi.get()), fi.get(),
                        Hexadecimal.getHex(md5.digest(fi.get())), fi.getSize(), permiso);
                fileDataBaseFacade.create(fdb);
            }
        }
        ResponseConfig config = new ResponseConfig();
        config.setTimeZone(cSession.getAccessInfo().getTimeZone());
        out.println(fdb.toJson(config));
    } catch (FileUploadException | NoSuchAlgorithmException e) {
        logger.error("Error cargando el fichero en el servidor, " + "Exception: {}", e.getMessage());
    } catch (UnknownColumnException e) {
        logger.error("Imposible la columna para el link debe existir referer[{}], " + "p[{}]",
                request.getHeader("referer"), request.getParameter(PERMISO_FIELD));
        logger.debug("referrer: " + request.getHeader("referrer"));
    } finally {
        out.close();
    }
}

From source file:admin.controller.ServletChangeLooks.java

/**
  * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
  * methods.//from w  ww.ja  v 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
  */
public void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    super.processRequest(request, response);
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    String filePath = "";
    String fileName, fieldName, uploadPath, deletePath, file_name_to_delete = "", uploadPath1;
    Looks look;
    RequestDispatcher request_dispatcher;
    String lookname = "", lookid = "";
    Integer organization = 0;
    look = new Looks();
    boolean check = false;

    File file;
    int maxFileSize = 5000 * 1024;
    int maxMemSize = 5000 * 1024;
    try {
        // Verify the content type
        String contentType = request.getContentType();
        if ((contentType.indexOf("multipart/form-data") >= 0)) {

            DiskFileItemFactory factory = new DiskFileItemFactory();
            // maximum size that will be stored in memory
            factory.setSizeThreshold(maxMemSize);
            // Location to save data that is larger than maxMemSize.
            factory.setRepository(new File(AppConstants.TMP_FOLDER));

            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            // maximum file size to be uploaded.
            upload.setSizeMax(maxFileSize);

            // Parse the request to get file items.
            List fileItems = upload.parseRequest(request);

            // Process the uploaded file items
            Iterator i = fileItems.iterator();

            out.println("<html>");
            out.println("<head>");
            out.println("<title>JSP File upload</title>");
            out.println("</head>");
            out.println("<body>");
            while (i.hasNext()) {
                FileItem fi = (FileItem) i.next();
                if (fi.isFormField()) {
                    // Get the uploaded file parameters
                    fieldName = fi.getFieldName();
                    if (fieldName.equals("lookname")) {
                        lookname = fi.getString();
                    }
                    if (fieldName.equals("lookid")) {
                        lookid = fi.getString();
                    }
                    if (fieldName.equals("organization")) {
                        organization = Integer.parseInt(fi.getString());
                    }
                    file_name_to_delete = look.getFileName(Integer.parseInt(lookid));
                } else {

                    check = look.checkAvailabilities(Integer.parseInt(lookid), lookname, organization);

                    if (check == false) {

                        fieldName = fi.getFieldName();
                        fileName = fi.getName();

                        File uploadDir = new File(AppConstants.LOOK_IMAGES_HOME);

                        if (!uploadDir.exists()) {
                            uploadDir.mkdirs();
                        }

                        //                            int inStr = fileName.indexOf(".");
                        //                            String Str = fileName.substring(0, inStr);
                        //
                        //                            fileName = lookname + "_" + Str + ".png";
                        fileName = lookname + "_" + fileName;
                        boolean isInMemory = fi.isInMemory();
                        long sizeInBytes = fi.getSize();

                        String file_path = AppConstants.LOOK_IMAGES_HOME + File.separator + fileName;
                        String delete_path = AppConstants.LOOK_IMAGES_HOME + File.separator
                                + file_name_to_delete;
                        File deleteFile = new File(delete_path);
                        deleteFile.delete();
                        File storeFile = new File(file_path);
                        fi.write(storeFile);
                        out.println("Uploaded Filename: " + filePath + "<br>");
                        look.changeLooks(Integer.parseInt(lookid), lookname, fileName, organization);
                        response.sendRedirect(request.getContextPath() + "/admin/looks.jsp");
                    } else {
                        response.sendRedirect(
                                request.getContextPath() + "/admin/editlook.jsp?exist=exist&look_id=" + lookid
                                        + "&look_name=" + lookname + "&organization_id=" + organization
                                        + "&image_file_name=" + file_name_to_delete);
                    }
                }
            }
            out.println("</body>");
            out.println("</html>");
        } else {
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet upload</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<p>No file uploaded</p>");
            out.println("</body>");
            out.println("</html>");
        }
    } catch (Exception ex) {
        logger.log(Level.SEVERE, "Exception while editing the looks", ex);
    } finally {
        out.close();
    }

}

From source file:net.jforum.core.support.vraptor.DefaultLogicLocator.java

@SuppressWarnings({ "deprecation", "unchecked" })
private void handleMultipartRequest(VRaptorServletRequest servletRequest) {
    if (!FileUploadBase.isMultipartContent(servletRequest)) {
        return;// ww w  . j a v a  2 s .c  om
    }

    // Create a factory for disk-based file items
    DiskFileItemFactory factory = new DiskFileItemFactory(4096 * 16, this.temporaryDirectory);

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

    List<FileItem> fileItems;

    // assume we know there are two files. The first file is a small
    // text file, the second is unknown and is written to a file on
    // the server
    try {
        fileItems = upload.parseRequest(servletRequest);
    } catch (FileUploadException e) {
        logger.warn("There was some problem parsing this multipart request, or someone is not sending a "
                + "RFC1867 compatible multipart request.", e);
        return;
    }

    for (FileItem item : fileItems) {
        if (item.isFormField()) {
            servletRequest.addParameterValue(item.getFieldName(), item.getString());
        } else {
            if (!item.getName().trim().equals("")) {
                try {
                    File file = File.createTempFile("vraptor.", ".upload");
                    item.write(file);

                    UploadedFileInformation fileInformation = new BasicUploadedFileInformation(file,
                            item.getName(), item.getContentType());

                    this.registeUploadedFile(servletRequest, item.getFieldName(), fileInformation);
                } catch (Exception e) {
                    logger.error("Nasty uploaded file " + item.getName(), e);
                }
            } else {
                logger.debug("A file field was empy: " + item.getFieldName());
            }
        }
    }
}

From source file:com.ephesoft.gxt.admin.server.ImportTableUploadServlet.java

/**
 * This API is used to process uploaded file .
 * //ww  w.  ja  v a 2 s .  c  o  m
 * @param upload {@link ServletFileUpload} uploaded file.
 * @param req {@link HttpServletRequest}.
 * @param printWriter {@link PrintWriter}.
 * @param parentDirPath {@link String} to copy the file in directory path.
 * @return {@link File} temporary file after copy.
 */
private String processUploadedFile(final ServletFileUpload upload, final HttpServletRequest req,
        final PrintWriter printWriter, final String parentDirPath) {
    String tableFileName = "";
    String tablePathname = "";
    File tempTableFile = null;
    List<FileItem> items;

    try {
        items = upload.parseRequest(req);
        for (final FileItem item : items) {

            if (!item.isFormField()) {// && "importFile".equals(item.getFieldName())) {
                tablePathname = getTablePath(item, parentDirPath);

                tableFileName = getTableFileName(item);

                tempTableFile = copyItemContentInFile(item, tablePathname, printWriter);

            }
        }
    } catch (final FileUploadException e) {
        printWriter.write("Unable to read the form contents.Please try again.");
    }

    return tempTableFile.getAbsolutePath();
}

From source file:ReceiveImage.java

/**
 * Handles the HTTP <code>POST</code> method.
 *
 * @param request servlet request//w w w .j av  a2  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 {

    System.out.println(isMultipart = ServletFileUpload.isMultipartContent(request));

    DiskFileItemFactory factory = new DiskFileItemFactory();
    // maximum size that will be stored in memory
    factory.setSizeThreshold(maxMemSize);
    // Location to save data that is larger than maxMemSize.
    factory.setRepository(new File("c:\\temp"));

    // Create a new file upload handler
    ServletFileUpload upload = new ServletFileUpload(factory);
    // maximum file size to be uploaded.
    upload.setSizeMax(maxFileSize);

    try {
        // Parse the request to get file items.
        List fileItems = upload.parseRequest(request);

        // Process the uploaded file items
        Iterator i = fileItems.iterator();
        while (i.hasNext()) {
            FileItem fi = (FileItem) i.next();
            System.out.println(fi.isFormField());
            if (fi.isFormField()) {
                System.out.println("Got a form field: " + fi.getFieldName() + " " + fi);
            } else {
                // Get the uploaded file parameters
                //System.out.println(fi.getString("Command"));

                String fieldName = fi.getFieldName();
                String fileName = fi.getName();
                String contentType = fi.getContentType();
                boolean isInMemory = fi.isInMemory();

                System.out.println(fieldName);
                System.out.println(fileName);
                String courseHour, course, regNo, date, temp = fileName;
                int j = temp.indexOf("sep");

                courseHour = temp.substring(0, j);
                temp = temp.substring(j + 3);

                j = temp.indexOf("sep");

                course = temp.substring(0, j);

                temp = temp.substring(j + 3);

                j = temp.indexOf("sep");

                regNo = temp.substring(0, j);

                date = temp.substring(j + 3);
                date = date.replaceAll("s", "-");

                System.out.println("ualal" + courseHour + course + regNo + date);

                System.out.println(contentType);

                long sizeInBytes = fi.getSize();
                // Write the file

                String uploadFolder = getServletContext().getRealPath("") + "Photo\\" + course + "\\" + regNo
                        + "\\";
                //                    String uploadFolder =  "\\SUST_PHOTO_PRESENT\\Photo\\" + course + "\\" + regNo + "\\";

                uploadFolder = uploadFolder.replace("\\build", "");
                Path path = Paths.get(uploadFolder);
                //if directory exists?
                if (!Files.exists(path)) {
                    try {
                        Files.createDirectories(path);
                    } catch (IOException e) {
                        //fail to create directory
                        e.printStackTrace();
                    }
                }
                //uploadFolder+= "\\"+date+".jpg";   
                System.out.println(fileName);
                System.out.println(uploadFolder);

                //               
                file = new File(uploadFolder + date);

                date = date.replaceAll("-", "/");
                date = date.substring(0, 10);

                String total_url = uploadFolder + date.replaceAll("/", "-") + ".jpg";
                System.out.println(total_url);

                String formattedUrl = total_url.replaceAll("\\\\", "/");

                System.out.println(formattedUrl.substring(38));

                System.out.println("-------------->>>>>>>>" + course + "  " + date + regNo + total_url);

                AddUser.updateUrl(courseHour, course, date, regNo, formattedUrl.substring(38));
                fi.write(file);

                //                    System.out.println("-------------->>>>>>>>" +course+"  "+ date+ regNo+total_url);
                //                   try {
                //            SavePhoto.saveIMG("CSE", "2016", "tada","F:\\1.png");
                //        } catch (IOException ex) {
                //            Logger.getLogger(SavePhoto.class.getName()).log(Level.SEVERE, null, ex);
                //        }
                System.out.println(uploadFolder);
            }
        }
    } catch (Exception ex) {
        System.out.println(ex);
    }
}

From source file:business.controllers.UploadImageController.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    if (!ServletFileUpload.isMultipartContent(request)) {
        PrintWriter writer = response.getWriter();
        writer.println("Request does not contain upload data");
        writer.flush();/*from   www. j  av  a2  s  .com*/
        return;
    }
    String oauthCode = "";
    // configures upload settings
    DiskFileItemFactory factory = new DiskFileItemFactory();
    // maximum size that will be stored in memory
    factory.setSizeThreshold(UploadConstant.THRESHOLD_SIZE);
    // Location to save data that is larger than maxMemSize.
    factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
    // Create a new file upload handler
    ServletFileUpload upload = new ServletFileUpload(factory);
    // maximum file size to be uploaded.
    upload.setFileSizeMax(UploadConstant.MAX_FILE_SIZE);
    upload.setSizeMax(UploadConstant.MAX_REQUEST_SIZE);
    List formItems = new ArrayList();
    try {
        // parses the request's content to extract file data
        formItems = upload.parseRequest(request);
        Iterator iter = formItems.iterator();
        // iterates over form's fields
        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();
            // processes only fields that are not form fields
            if (item.getFieldName().equals("oauthcode")) {
                oauthCode = item.getString();
            }

        }

    } catch (FileUploadException ex) {
        logger.error("Write image:" + ex);
    }

    //checkLogin
    BusinessChatHandler handler = new BusinessChatHandler();
    try {
        if (handler.isLogin(oauthCode)) {
            uploadImage(request, response, formItems);
        }
    } catch (TException ex) {
        java.util.logging.Logger.getLogger(UploadImageController.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:gov.nist.appvet.tool.SynchronousService.java

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

    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    List items = null;// ww  w  . j  a v  a2 s  .  co  m
    FileItem fileItem = null;

    try {
        items = upload.parseRequest(request);
    } catch (FileUploadException e) {
        e.printStackTrace();
    }

    // Get form fields
    Iterator iter = items.iterator();
    FileItem item = null;
    while (iter.hasNext()) {
        item = (FileItem) iter.next();
        if (item.isFormField()) {
            //String incomingParameter = item.getFieldName();
            //String incomingValue = item.getString();
            // For this service, we do not expect any input parameters 
            // except for the app file.
            //log.debug("Ignoring " + incomingParameter + " = " + incomingValue);
        } else {
            // item should now hold the received file
            if (item != null) {
                fileItem = item;
                log.debug("Received file: " + fileItem.getName());
            }
        }
    }

    String appFilePath = null;
    String fileName = null;
    Random rand = new Random(new Date().getTime());
    final int randInt = rand.nextInt(9999999);
    String id = new Integer(randInt).toString();

    if (fileItem != null) {
        fileName = getFileName(fileItem.getName());
        if (!fileName.endsWith(".apk")) {
            sendHttp400(response, "Invalid app file: " + fileItem.getName());
            return;
        }

        appFilePath = Properties.TEMP_DIR + "/" + id + fileName;
        log.debug("App file path: " + appFilePath);

        if (!saveFileUpload(fileItem, appFilePath)) {
            sendHttp500(response, "Could not save uploaded file");
            return;
        }
    } else {
        sendHttp400(response, "No app was received.");
        return;
    }

    String command = Properties.command + " " + appFilePath;

    StringBuffer reportBuffer = new StringBuffer();
    boolean succeeded = runTool(command, reportBuffer);
    if (!succeeded) {
        if (reportBuffer.toString().contains("java.lang.SecurityException")) {
            returnReport(response, fileName, ToolStatus.FAIL, reportBuffer.toString());
        } else {
            log.error("Error detected: " + reportBuffer.toString());
            returnReport(response, fileName, ToolStatus.ERROR, reportBuffer.toString());
        }
    } else {
        log.debug("Analyzing report for " + appFilePath);
        ToolStatus reportStatus = analyzeReport(reportBuffer.toString());
        log.debug("Result: " + reportStatus.name());
        returnReport(response, fileName, reportStatus, reportBuffer.toString());
    }

    boolean deleted = deleteFile(appFilePath);
    if (deleted) {
        log.debug("Deleted " + appFilePath);
    } else {
        log.error("Could not delete file " + appFilePath);
    }

    // Clean up
    reportBuffer = null;
    System.gc();
}

From source file:com.ephesoft.dcma.gwt.admin.bm.server.UploadImageFileServlet.java

/**
 * Overridden doPost method.//  w  ww . jav a  2s .com
 * 
 * @param request HttpServletRequest
 * @param response HttpServletResponse
 * @throws IOException
 */
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    String batchClassId = null;
    String docName = null;
    String fileName = null;
    String isAdvancedTableInfo = null;
    InputStream instream = null;
    OutputStream out = null;
    PrintWriter printWriter = resp.getWriter();
    if (ServletFileUpload.isMultipartContent(req)) {
        // Create a factory for disk-based file items
        FileItemFactory factory = new DiskFileItemFactory();
        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
        List<FileItem> items;
        BatchSchemaService batchSchemaService = this.getSingleBeanOfType(BatchSchemaService.class);
        String uploadPath = null;
        try {
            items = upload.parseRequest(req);
            for (FileItem item : items) {

                // process only file upload - discard other form item types
                if (item.isFormField()) {
                    if (item.getFieldName().equalsIgnoreCase("batchClassID")) {
                        batchClassId = item.getString();
                    } else if (item.getFieldName().equalsIgnoreCase("docName")) {
                        docName = item.getString();
                    } else if (item.getFieldName().equalsIgnoreCase("isAdvancedTableInfo")) {
                        isAdvancedTableInfo = item.getString();
                    }
                } else if (!item.isFormField() && "importFile".equals(item.getFieldName())) {
                    fileName = item.getName();
                    if (fileName != null) {
                        fileName = fileName.substring(fileName.lastIndexOf(File.separator) + 1);
                    }
                    instream = item.getInputStream();
                }
            }
            if (batchClassId == null || docName == null) {
                LOG.error(
                        "Error while loading image... Either batchClassId or doc type is null. Batch Class Id :: "
                                + batchClassId + " Doc Type :: " + docName);
                printWriter.write("Error while loading image... Either batchClassId or doc type is null.");
            } else {
                StringBuilder uploadPathString = uploadPath(batchClassId, docName, isAdvancedTableInfo,
                        batchSchemaService);
                File uploadFolder = new File(uploadPathString.toString());
                if (!uploadFolder.exists()) {
                    try {
                        boolean tempPath = uploadFolder.mkdirs();
                        if (!tempPath) {
                            LOG.error(
                                    "Unable to create the folders in the temp directory specified. Change the path and permissions in dcma-batch.properties");
                            printWriter.write(
                                    "Unable to create the folders in the temp directory specified. Change the path and permissions in dcma-batch.properties");
                            return;
                        }
                    } catch (Exception e) {
                        LOG.error("Unable to create the folders in the temp directory.", e);
                        printWriter
                                .write("Unable to create the folders in the temp directory." + e.getMessage());
                        return;
                    }
                }
                uploadPathString.append(File.separator);
                uploadPathString.append(fileName);
                uploadPath = uploadPathString.toString();
                out = new FileOutputStream(uploadPath);
                byte buf[] = new byte[BatchClassManagementConstants.BUFFER_SIZE];
                int len = instream.read(buf);
                while ((len) > 0) {
                    out.write(buf, 0, len);
                    len = instream.read(buf);
                }
                // convert tiff to png
                ImageProcessService imageProcessService = this.getSingleBeanOfType(ImageProcessService.class);
                imageProcessService.generatePNGForImage(new File(uploadPath));
                LOG.info("Png file created successfully for file: " + uploadPath);
            }
        } catch (FileUploadException e) {
            LOG.error("Unable to read the form contents." + e, e);
            printWriter.write("Unable to read the form contents.Please try again.");
        } catch (DCMAException e) {
            LOG.error("Unable to generate PNG." + e, e);
            printWriter.write("Unable to generate PNG.Please try again.");
        } finally {
            if (out != null) {
                out.close();
            }
            if (instream != null) {
                instream.close();
            }
        }
        printWriter.write("file_seperator:" + File.separator);
        printWriter.write("|");
    }
}

From source file:com.ultrapower.eoms.common.plugin.ajaxupload.AjaxMultiPartRequest.java

/**
 * Creates a new request wrapper to handle multi-part data using methods
 * adapted from Jason Pell's multipart classes (see class description).
 * /*from  w  ww .  j  a  v  a2  s  .c om*/
 * @param saveDir
 *            the directory to save off the file
 * @param servletRequest
 *            the request containing the multipart
 * @throws java.io.IOException
 *             is thrown if encoding fails.
 * @throws
 */
public void parse(HttpServletRequest servletRequest, String saveDir) throws IOException {

    Integer delay = 3;
    UploadListener listener = null;
    DiskFileItemFactory fac = null;

    // Parse the request
    try {
        if (maxSize >= 0L && servletRequest.getContentLength() > maxSize) {
            servletRequest.setAttribute("error", "size");
            FileItemIterator it = new ServletFileUpload(fac).getItemIterator(servletRequest);
            // handle with each file:
            while (it.hasNext()) {
                FileItemStream item = it.next();
                if (item.isFormField()) {
                    List<String> values;
                    if (params.get(item.getFieldName()) != null) {
                        values = params.get(item.getFieldName());
                    } else {
                        values = new ArrayList<String>();
                    }
                    InputStream stream = item.openStream();
                    values.add(Streams.asString(stream));
                    params.put(item.getFieldName(), values);
                }
            }
            return;
        } else {
            listener = new UploadListener(servletRequest, delay);
            fac = new MonitoredDiskFileItemFactory(listener);
        }

        // Make sure that the data is written to file
        fac.setSizeThreshold(0);
        if (saveDir != null) {
            fac.setRepository(new File(saveDir));
        }
        ServletFileUpload upload = new ServletFileUpload(fac);
        upload.setSizeMax(maxSize);
        List items = upload.parseRequest(createRequestContext(servletRequest));

        for (Object item1 : items) {
            FileItem item = (FileItem) item1;
            if (log.isDebugEnabled())
                log.debug("Found item " + item.getFieldName());
            if (item.isFormField()) {
                log.debug("Item is a normal form field");
                List<String> values;
                if (params.get(item.getFieldName()) != null) {
                    values = params.get(item.getFieldName());
                } else {
                    values = new ArrayList<String>();
                }
                String charset = servletRequest.getCharacterEncoding();
                if (charset != null) {
                    values.add(item.getString(charset));
                } else {
                    values.add(item.getString());
                }
                params.put(item.getFieldName(), values);
            } else {
                log.debug("Item is a file upload");

                // Skip file uploads that don't have a file name - meaning
                // that no file was selected.
                if (item.getName() == null || item.getName().trim().length() < 1) {
                    log.debug("No file has been uploaded for the field: " + item.getFieldName());
                    continue;
                }

                String targetFileName = item.getName();

                if (!targetFileName.contains(":"))
                    item.write(new File(targetDirectory + targetFileName));

                //?Action
                List<FileItem> values;
                if (files.get(item.getFieldName()) != null) {
                    values = files.get(item.getFieldName());
                } else {
                    values = new ArrayList<FileItem>();
                }

                values.add(item);
                files.put(item.getFieldName(), values);
            }
        }
    } catch (Exception e) {
        log.error(e);
        errors.add(e.getMessage());
    }
}