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

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

Introduction

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

Prototype

public ServletFileUpload(FileItemFactory fileItemFactory) 

Source Link

Document

Constructs an instance of this class which uses the supplied factory to create FileItem instances.

Usage

From source file:com.openhr.company.UploadCompLicenseFile.java

@Override
public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    // checks if the request actually contains upload file
    if (!ServletFileUpload.isMultipartContent(request)) {
        PrintWriter writer = response.getWriter();
        writer.println("Request does not contain upload data");
        writer.flush();/*from  www  . j a  v a2  s. co  m*/
        return map.findForward("HRHome");
    }

    // configures upload settings
    DiskFileItemFactory factory = new DiskFileItemFactory();
    factory.setSizeThreshold(THRESHOLD_SIZE);
    factory.setRepository(new File(System.getProperty("java.io.tmpdir")));

    ServletFileUpload upload = new ServletFileUpload(factory);
    upload.setSizeMax(MAX_REQUEST_SIZE);

    // constructs the directory path to store upload file
    String uploadPath = UPLOAD_DIRECTORY;
    // creates the directory if it does not exist
    File uploadDir = new File(uploadPath);
    if (!uploadDir.exists()) {
        uploadDir.mkdir();
    }

    try {
        // parses the request's content to extract file data
        List 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.isFormField()) {
                String fileName = new File(item.getName()).getName();
                String filePath = uploadPath + File.separator + fileName;
                File storeFile = new File(filePath);

                // saves the file on disk
                item.write(storeFile);

                // Read the file object contents and parse it and store it in the repos
                FileInputStream fstream = new FileInputStream(storeFile);
                DataInputStream in = new DataInputStream(fstream);
                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                String strLine;

                //Read File Line By Line
                while ((strLine = br.readLine()) != null) {
                    System.out.print("Processing line - " + strLine);

                    String[] lineColumns = strLine.split(COMMA);

                    if (lineColumns.length < 8) {
                        br.close();
                        in.close();
                        fstream.close();
                        throw new Exception("The required columns are missing in the line - " + strLine);
                    }

                    // Format is - CompID,CompName,Branch,Address,From,To,LicenseKey,FinStartMonth
                    String companyId = lineColumns[0];
                    String companyName = lineColumns[1];
                    String branchName = lineColumns[2];
                    String address = lineColumns[3];
                    String fromDateStr = lineColumns[4];
                    String toDateStr = lineColumns[5];
                    String licenseKey = lineColumns[6];
                    String finStartMonthStr = lineColumns[7];

                    Date fromDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.ENGLISH)
                            .parse(fromDateStr);
                    Date toDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.ENGLISH).parse(toDateStr);
                    address = address.replace(";", ",");

                    List<Company> eComp = CompanyFactory.findByName(companyName);
                    if (eComp == null || eComp.isEmpty()) {
                        Company company = new Company();
                        company.setCompanyId(companyId);
                        company.setName(companyName);
                        company.setFystart(Integer.parseInt(finStartMonthStr));

                        Branch branch = new Branch();
                        branch.setAddress(address);
                        branch.setCompanyId(company);
                        branch.setName(branchName);

                        Licenses license = new Licenses();
                        license.setActive(1);
                        license.setCompanyId(company);
                        license.setFromdate(fromDate);
                        license.setTodate(toDate);
                        license.formLicenseKey();

                        System.out.println("License key formed - " + license.getLicensekey());
                        System.out.println("License key given - " + licenseKey);
                        if (license.getLicensekey().equalsIgnoreCase(licenseKey)) {
                            CompanyFactory.insert(company);
                            BranchFactory.insert(branch);
                            LicenseFactory.insert(license);
                        } else {
                            br.close();
                            in.close();
                            fstream.close();

                            throw new Exception("License is tampared. Contact Support.");
                        }
                    } else {
                        // Company is present, so update it.
                        Company company = eComp.get(0);
                        List<Licenses> licenses = LicenseFactory.findByCompanyId(company.getId());

                        Licenses newLicense = new Licenses();
                        newLicense.setActive(1);
                        newLicense.setCompanyId(company);
                        newLicense.setFromdate(fromDate);
                        newLicense.setTodate(toDate);
                        newLicense.formLicenseKey();

                        System.out.println("License key formed - " + newLicense.getLicensekey());
                        System.out.println("License key given - " + licenseKey);

                        if (newLicense.getLicensekey().equalsIgnoreCase(licenseKey)) {
                            for (Licenses lic : licenses) {
                                if (lic.getActive().compareTo(1) == 0) {
                                    lic.setActive(0);
                                    LicenseFactory.update(lic);
                                }
                            }

                            LicenseFactory.insert(newLicense);
                        } else {
                            br.close();
                            in.close();
                            fstream.close();

                            throw new Exception("License is tampared. Contact Support.");
                        }
                    }
                }

                //Close the input stream
                br.close();
                in.close();
                fstream.close();
            }
        }
        System.out.println("Upload has been done successfully!");
    } catch (Exception ex) {
        System.out.println("There was an error: " + ex.getMessage());
        ex.printStackTrace();
    }

    return map.findForward("CompLicHome");
}

From source file:com.fatih.edu.tr.NewTaskServlet.java

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

    // Check that we have a file upload request
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);

    if (!isMultipart) {
        return;/* w  w w  .ja va2  s . c o  m*/
    }

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

    // Sets the size threshold beyond which files are written directly to
    // disk.
    factory.setSizeThreshold(MAX_MEMORY_SIZE);

    // Sets the directory used to temporarily store files that are larger
    // than the configured size threshold. We use temporary directory for
    // java
    factory.setRepository(new File(System.getProperty("java.io.tmpdir")));

    // constructs the folder where uploaded file will be stored
    String uploadFolder = getServletContext().getRealPath("") + File.separator + DATA_DIRECTORY;

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

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

    TaskDao taskDao = new TaskDao();
    String title = "";
    String description = "";
    String due_date = "";
    String fileName = "";
    String filePath = "";
    //taskDao.addTask(title, description, due_date, "testfile","testdizi",1);

    try {
        // Parse the request
        List items = upload.parseRequest(request);
        Iterator iter = items.iterator();
        while (iter.hasNext()) {

            FileItem item = (FileItem) iter.next();

            if (!item.isFormField()) {
                fileName = new File(item.getName()).getName();
                filePath = uploadFolder + File.separator + fileName;
                File uploadedFile = new File(filePath);
                System.out.println(filePath);
                item.write(uploadedFile);
            } else {
                String fieldname = item.getFieldName();
                String fieldvalue = item.getString();
                if (fieldname.equals("title")) {
                    title = item.getString();
                } else if (fieldname.equals("description")) {
                    description = item.getString();

                } else if (fieldname.equals("due_date")) {
                    due_date = item.getString();
                } else {
                    System.out.println("Something goes wrong in form");
                }
            }

        }
        taskDao.addTask(title, description, due_date, fileName, filePath, 1);
        // displays done.jsp page after upload finished
        getServletContext().getRequestDispatcher("/done.jsp").forward(request, response);

    } catch (FileUploadException ex) {
        throw new ServletException(ex);
    } catch (Exception ex) {
        throw new ServletException(ex);
    }

}

From source file:com.bmth.MyServlet.RegisterServlet.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);

    Account account = new Account();
    // process only if it is multipart content
    String username = "1";
    if (isMultipart) {
        // Create a factory for disk-based file items
        FileItemFactory factory = new DiskFileItemFactory();

        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
        try {/* ww w.j  a v  a  2s .c o  m*/
            // Parse the request
            List<FileItem> multiparts = upload.parseRequest(request);

            for (FileItem item : multiparts) {

                if (!item.isFormField()) {
                    String fileName = UPLOAD_DIRECTORY + File.separator + username;
                    File file = new File(fileName);
                    item.write(file);
                    account.setAvatarUrl("http://localhost:8080/Avatar/" + file.getName());
                } else {
                    String fieldName = item.getFieldName();
                    if (fieldName.equals("firstname")) {
                        account.setFullName(item.getString());
                    }
                    if (fieldName.equals("user_name")) {
                        username = item.getString();
                        account.setUsername(username);
                    }
                    if (fieldName.equals("nickname")) {
                        account.setNickName(item.getString());
                    }
                    if (fieldName.equals("user_password")) {
                        account.setPassword(item.getString());
                    }
                    if (fieldName.equals("user_email")) {
                        account.setEmail(item.getString());
                    }
                    if (fieldName.equals("sex")) {
                        int gender = item.getString().equals("male") ? 1 : 0;
                        account.setGender(gender);
                    }
                    if (fieldName.equals("date")) {
                        String date = item.getString();
                        String[] dates = date.split("-");
                        Calendar cal = Calendar.getInstance();
                        cal.set(Calendar.YEAR, Integer.parseInt(dates[0]));
                        cal.set(Calendar.MONTH, Integer.parseInt(dates[1]));
                        cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dates[2]));
                        Date birtday = new Date(cal.getTimeInMillis());
                        account.setBirthDay(birtday);
                    }
                    if (fieldName.equals("address")) {
                        account.setAddress(item.getString());
                    }

                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    account.setPhoneNumber("01698662215");
    Register re = new Register();
    boolean check = re.AddUser(account);
    String json;
    if (check) {
        Account account1 = re.getAccountbyUsername(username);
        json = "{\"userId\":" + account1.getUserId() + "}";
    } else {
        json = "{\"userId\": 0}";
    }
    response.getWriter().write(json);
}

From source file:adminpackage.adminview.ProductAddition.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, Exception {
    response.setContentType("text/plain;charset=UTF-8");

    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);

    AdminViewProduct product = new AdminViewProduct();
    List<FileItem> items = upload.parseRequest(request);
    Iterator itr = items.iterator();
    String value = "defa";
    String url = "";
    while (itr.hasNext()) {
        FileItem item = (FileItem) itr.next();
        if (item.isFormField()) {
            String name = item.getFieldName();
            value = item.getString();/*from   w w w.j  a  v  a  2 s  . co  m*/
            switch (name) {
            case "pname":
                product.setName(value);
                break;
            case "quantity":
                product.setQuantity(Integer.parseInt(value));
                break;
            case "author":
                product.setAuthor(value);
                break;
            case "isbn":
                product.setISBN(Long.parseLong(value));
                break;
            case "description":
                product.setDescription(value);
                break;
            case "category":
                product.setCategory(value);
                break;
            case "price":
                product.setPrice(Integer.parseInt(value));
                break;
            }
        } else {

            //System.out.println(context.getRealPath("/pages/images/").replaceAll("\\\\target\\\\MavenOnlineShoping-1.0-SNAPSHOT", "\\\\src\\\\main\\\\webapp") + item.getName());
            //url = context.getRealPath("/pages/images/").replaceAll("\\\\target\\\\MavenOnlineShoping-1.0-SNAPSHOT", "\\\\src\\\\main\\\\webapp") + item.getName();
            UUID idOne = UUID.randomUUID();
            product.setImage(idOne.toString() + item.getName().substring(item.getName().length() - 4));
            item.write(new File(context.getRealPath("/pages/images/")
                    .replaceAll("\\\\target\\\\MavenOnlineShoping-1.0-SNAPSHOT", "\\\\src\\\\main\\\\webapp")
                    + idOne.toString() + item.getName().substring(item.getName().length() - 4)));
        }
    }

    PrintWriter out = response.getWriter();

    if (adminFacadeHandler.addBook(product)) {
        out.print("true");
    } else {
        //out.println("false");
        out.print("false");
    }
}

From source file:edu.xtec.colex.utils.ParseMultipart.java

/**
 * Creates a new instance of ParseMultipart with a given HttpServletRequest
 * @param requestIn the HttpServletRequest to parse
 *///w w w  .ja  v  a  2s  .  c  o m
public ParseMultipart(HttpServletRequest requestIn) {
    parameters = new Hashtable();

    request = requestIn;

    isMultipart = ServletFileUpload.isMultipartContent(new ServletRequestContext(request));

    try {
        if (isMultipart) {
            DiskFileItemFactory factory = new DiskFileItemFactory();
            // Configure the factory here, if desired.

            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setHeaderEncoding("ISO-8859-1");
            // Configure the uploader here, if desired.

            Iterator fileItems = upload.parseRequest(request).iterator();

            while (fileItems.hasNext()) {
                FileItem fi = (FileItem) fileItems.next();

                if (!fi.isFormField()) {
                    parameters.put(fi.getFieldName(), fi);
                } else {
                    parameters.put(fi.getFieldName(), fi.getString("ISO-8859-1").trim());
                }
            }
        }
    } catch (Exception e) {
        System.out.println(e);
    }
}

From source file:io.agi.framework.coordination.http.HttpImportHandler.java

@Override
public void handle(HttpExchange t) throws IOException {

    int status = 400;
    String response = "";

    //for(Map.Entry<String, List<String> > header : t.getRequestHeaders().entrySet()) {
    //    System.out.println(header.getKey() + ": " + header.getValue().get(0));
    //}//from  w ww  .ja v  a2s .com

    // Based on accepted answer: http://stackoverflow.com/questions/33732110/file-upload-using-httphandler
    DiskFileItemFactory d = new DiskFileItemFactory();

    try {
        ServletFileUpload up = new ServletFileUpload(d);
        List<FileItem> result = up.parseRequest(new RequestContext() {

            @Override
            public String getCharacterEncoding() {
                return "UTF-8";
            }

            @Override
            public int getContentLength() {
                return 0; //tested to work with 0 as return
            }

            @Override
            public String getContentType() {
                return t.getRequestHeaders().getFirst("Content-type");
            }

            @Override
            public InputStream getInputStream() throws IOException {
                return t.getRequestBody();
            }

        });

        for (FileItem fi : result) {

            //System.out.println( "File-Item: " + fi.getFieldName() + " = " + fi.getName() );

            String value = fi.getString();

            if (value == null) {
                continue;
            }

            //System.out.print( value );

            String fieldName = fi.getFieldName();

            if (fieldName.equalsIgnoreCase("entity-file")) {
                PersistenceUtil.ImportEntities(value);
                status = 200;
                response = response + "Imported Entities from: " + fi.getName() + "\n";

                _logger.info("Import: entities file: " + fi.getName());
            } else if (fieldName.equalsIgnoreCase("data-file")) {
                DataRefUtil.ImportData(value);
                status = 200;
                response = response + "Imported Data from: " + fi.getName() + "\n";

                _logger.info("Import: data file: " + fi.getName());
            }
        }

    } catch (Exception e) {
        _logger.error("Unable to import entities/data.");
        _logger.error(e.toString(), e);
    }

    HttpUtil.SendResponse(t, status, response);
}

From source file:com.seer.datacruncher.services.HttpFileUpload.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    try {//from  w  w w . j av a 2s  . co m
        FileItemFactory factory = new DiskFileItemFactory();

        ServletFileUpload upload = new ServletFileUpload(factory);

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

        Iterator iter = items.iterator();
        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();

            if (!item.isFormField()) {
                String fileName = item.getName();

                String str = getServletContext().getRealPath("/");
                fileName = fileName.substring(0, fileName.indexOf(".")) + ".txt";
                File uploadedFile = new File(str + fileName);
                item.write(uploadedFile);

                out.println("<Status>Success: File has been uploaded at " + uploadedFile.getAbsolutePath()
                        + "</Status>");
                out.flush();
                out.close();

                return;
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    out.println("<Status>Failure</Status>");
    out.flush();
    out.close();
}

From source file:com.official.wears.site.UploadServlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, java.io.IOException {
    // Check that we have a file upload request
    isMultipart = ServletFileUpload.isMultipartContent(request);
    response.setContentType("text/html");
    java.io.PrintWriter out = response.getWriter();
    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;//ww  w .j  av  a 2s  . com
    }
    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();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet upload</title>");
        out.println("</head>");
        out.println("<body>");
        while (i.hasNext()) {
            FileItem fi = (FileItem) i.next();
            if (!fi.isFormField()) {
                // Get the uploaded file parameters
                String fieldName = fi.getFieldName();
                String fileName = fi.getName();
                String contentType = fi.getContentType();
                boolean isInMemory = fi.isInMemory();
                long sizeInBytes = fi.getSize();
                // Write the file
                if (fileName.lastIndexOf("\\") >= 0) {
                    file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\")));
                } else {
                    file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\") + 1));
                }
                fi.write(file);
                out.println("Uploaded Filename: " + fileName + "<br>");
            }
        }
        out.println("</body>");
        out.println("</html>");
    } catch (Exception ex) {
        System.out.println(ex);
    }
}

From source file:com.patrolpro.servlet.UploadJasperReportServlet.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//  w  ww .  jav  a 2s. c o  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("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);

        String companyId = request.getParameter("companyId");

        FileItem fileData = null;
        Integer mobileFormId = null;
        List<FileItem> fields = upload.parseRequest(request);
        for (int f = 0; f < fields.size(); f++) {
            if (fields.get(f).getFieldName().equals("file_data")) {
                fileData = fields.get(f);
            } else if (fields.get(f).getFieldName().equals("mobileFormId")) {
                mobileFormId = Integer.parseInt(fields.get(f).getString());
            }
        }
        if (fileData == null || !fileData.getName().endsWith(".jrxml")) {
            out.write("{\"error\": \"Invalid file type! Please select a jrxml (Jasper Report) file!\"}");
            out.flush();
        } else {
            InputStream iStream = fileData.getInputStream();

            MobileFormService mobileService = new MobileFormService(companyId);

            ByteArrayOutputStream bOutput = new ByteArrayOutputStream();
            byte[] buffer = new byte[2048];
            int bufCount = 0;
            while ((bufCount = iStream.read(buffer)) > -1) {
                bOutput.write(buffer, 0, bufCount);
            }
            bOutput.flush();

            byte[] rawData = bOutput.toByteArray();
            JasperReport jasperReport = JasperCompileManager.compileReport(new ByteArrayInputStream(rawData));
            JRParameter[] params = jasperReport.getParameters();
            HashMap<String, Class> reportParams = new HashMap<String, Class>();
            for (int p = 0; p < params.length; p++) {
                JRParameter param = params[p];
                int searchPos = -1;
                for (int a = 0; a < MobileForms.getReservedIdentifiers().length; a++) {
                    if (MobileForms.getReservedIdentifiers()[a].equals(param.getName())) {
                        searchPos = a;
                    }
                }
                if (!param.isSystemDefined() && searchPos < 0 && !param.getName().startsWith("nfc_l_")
                        && !param.getName().endsWith("_loc")) {
                    reportParams.put(param.getName(), param.getValueClass());
                }
            }

            ByteArrayOutputStream oStream = new ByteArrayOutputStream();

            JasperCompileManager.writeReportToXmlStream(jasperReport, oStream);
            //JasperCompileManager.compileReportToStream(new ByteArrayInputStream(rawData), oStream);

            MobileForms selectedForm = mobileService.getForm(mobileFormId);
            selectedForm.setReportData(oStream.toByteArray());
            mobileService.saveForm(selectedForm);

            Iterator<String> keyIterator = reportParams.keySet().iterator();
            ArrayList<MobileFormData> currData = mobileService.getFormData(selectedForm.getMobileFormsId());
            int numberInserted = 1;
            while (keyIterator.hasNext()) {
                String key = keyIterator.next();

                boolean hasData = false;
                for (int d = 0; d < currData.size(); d++) {
                    if (currData.get(d).getDataLabel().equals(key) && currData.get(d).getActive()) {
                        hasData = true;
                    }
                }
                if (!hasData) {
                    MobileFormData formData = new MobileFormData();
                    formData.setActive(true);
                    formData.setMobileFormsId(selectedForm.getMobileFormsId());
                    formData.setDataLabel(key);
                    if (reportParams.get(key) == Date.class) {
                        formData.setDateType(5);
                    } else if (reportParams.get(key) == InputStream.class) {
                        formData.setDateType(8);
                    } else if (reportParams.get(key) == Boolean.class) {
                        formData.setDateType(3);
                    } else {
                        formData.setDateType(1);
                    }
                    formData.setOrdering(currData.size() + numberInserted);
                    mobileService.saveFormData(formData);

                    numberInserted++;
                }
            }

            out.write("{}");
            out.flush();
        }
    } catch (JRException jr) {
        out.write("{\"error\": \""
                + jr.getMessage().replaceAll("\n", "").replaceAll(":", "").replaceAll("\t", "") + "\"}");
        out.flush();
    } catch (Exception e) {
        out.write("{\"error\": \"Exception uploading report, " + e + "\"}");
        out.flush();
    } finally {
        out.close();
    }
}

From source file:es.alvsanand.webpage.web.fileupload.filter.FileUploadFilter.java

public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
        throws IOException, ServletException {
    HttpServletRequest httpServletRequest = (HttpServletRequest) request;
    boolean isMultipart = ServletFileUpload.isMultipartContent(httpServletRequest);

    if (isMultipart) {
        logger.debug("Parsing file upload request");

        MemoryFileItemFactory memoryFileItemFactory = new MemoryFileItemFactory();
        if (thresholdSize != null) {
            memoryFileItemFactory.setSizeThreshold(Integer.valueOf(thresholdSize));
        }// w  w w.  ja v a  2s .  c  om

        ServletFileUpload servletFileUpload = new ServletFileUpload(memoryFileItemFactory);
        MultipartRequest multipartRequest = new MultipartRequest(httpServletRequest, servletFileUpload);

        logger.debug(
                "File upload request parsed succesfully, continuing with filter chain with a wrapped multipart request");

        filterChain.doFilter(multipartRequest, response);
    } else {
        filterChain.doFilter(request, response);
    }
}