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

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

Introduction

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

Prototype

public List  parseRequest(HttpServletRequest request) throws FileUploadException 

Source Link

Document

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

Usage

From source file:com.bradmcevoy.http.ServletRequest.java

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

            parseQueryString(params);

            for (Object o : items) {
                FileItem item = (FileItem) o;
                if (item.isFormField()) {
                    params.put(item.getFieldName(), item.getString());
                } else {
                    // See http://jira.ettrema.com:8080/browse/MIL-118 - ServletRequest#parseRequestParameters overwrites multiple file uploads when using input type="file" multiple="multiple"                        
                    String itemKey = item.getFieldName();
                    if (files.containsKey(itemKey)) {
                        int count = 1;
                        while (files.containsKey(itemKey + count)) {
                            count++;
                        }
                        itemKey = itemKey + count;
                    }
                    files.put(itemKey, new FileItemWrapper(item));
                }
            }
        } else {
            for (Enumeration en = request.getParameterNames(); en.hasMoreElements();) {
                String nm = (String) en.nextElement();
                String val = request.getParameter(nm);
                params.put(nm, val);
            }
        }
    } catch (FileUploadException ex) {
        throw new RequestParseException("FileUploadException", ex);
    } catch (Throwable ex) {
        throw new RequestParseException(ex.getMessage(), ex);
    }
}

From source file:com.globalsight.everest.webapp.pagehandler.tm.management.FileUploadHelper.java

private void upload(HttpServletRequest p_request) throws Exception {
    DiskFileItemFactory factory = new DiskFileItemFactory();
    factory.setSizeThreshold(1024000);/*w ww  .  j ava2s . com*/
    ServletFileUpload upload = new ServletFileUpload(factory);

    List<FileItem> fileItems = upload.parseRequest(p_request);

    outFile = saveTmpFile(fileItems);
}

From source file:cust_photo_upload.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*  w  w  w  .ja  v a2 s  . 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");

    HttpSession hs = request.getSession();

    try (PrintWriter out = response.getWriter()) {

        Login ln = (Login) hs.getAttribute("user");

        String pname = ln.getUName();
        String p = "";

        //             
        // creates FileItem instances which keep their content in a temporary file on disk
        FileItemFactory factory = new DiskFileItemFactory();
        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);

        //get the list of all fields from request
        List<FileItem> fields = upload.parseRequest(request);
        // iterates the object of list
        Iterator<FileItem> it = fields.iterator();
        //getting objects one by one
        while (it.hasNext()) {
            //assigning coming object if list to object of FileItem
            FileItem fileItem = it.next();
            //check whether field is form field or not
            boolean isFormField = fileItem.isFormField();

            if (isFormField) {
                //get the filed name 
                String fieldName = fileItem.getFieldName();

            } else {

                String extension;
                String fieldName = fileItem.getFieldName();

                if (fieldName.equals("photo"))
                    ;

                {
                    //getting name of file
                    p = new File(fileItem.getName()).getName();
                    //get the extension of file by diving name into substring
                    extension = p.substring(p.indexOf(".") + 1, p.length());
                    ;
                    //rename file...concate name and extension
                    p = pname + "." + extension;

                    try {
                        String filePath = this.getServletContext().getRealPath("/images") + "\\";
                        fileItem.write(new File(filePath + p));
                    } catch (Exception ex) {
                        out.println(ex.toString());
                    }
                }
            }

        }

        //        hs.setAttribute("photo", photo);
        //        SessionFactory sf=NewHibernateUtil.getSessionFactory();
        //        Session s=sf.openSession();
        //        Transaction t=s.beginTransaction();
        //       Imagedata im=new Imagedata();
        //       im.setIname(pname);
        //       im.setIurl(photo);
        //        s.save(im);
        //        t.commit();
        //          
        RequestDispatcher rd = request.getRequestDispatcher("viewserv");
        rd.forward(request, response);
        //            response.sendRedirect("viewserv");

    } catch (Exception ex) {
        out.println(ex.getMessage());
    }

}

From source file:com.bluelotussoftware.apache.commons.fileupload.example.FileUploadServlet.java

/**
 * Processes requests for both HTTP//from  www.  j  av  a2  s .co 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 {
    response.setContentType("text/html;charset=UTF-8");
    boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
    log("isMultipartContent: " + isMultiPart);
    log("Content-Type: " + request.getContentType());
    if (isMultiPart) {

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

        /*
         * Set the file size limit in bytes. This should be set as an
         * initialization parameter
         */
        diskFileItemFactory.setSizeThreshold(1024 * 1024 * 10); //10MB.

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

        // Parse the request
        List items = null;
        try {
            items = upload.parseRequest(request);
        } catch (FileUploadException ex) {
            log("Could not parse request", ex);
        }

        PrintWriter out = response.getWriter();
        out.print("<html><head><title>SUCCESS</title></head><body><h1>DONE!</h1>");

        ListIterator li = items.listIterator();
        while (li.hasNext()) {
            FileItem fileItem = (FileItem) li.next();
            if (fileItem.isFormField()) {
                processFormField(fileItem);
            } else {
                out.append(processUploadedFile(fileItem));
            }
        }
        out.print("</body></html>");
        out.flush();
        out.close();

    }
}

From source file:com.ikon.servlet.admin.CssServlet.java

@Override
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {
    log.debug("doPost({}, {})", request, response);
    request.setCharacterEncoding("UTF-8");
    String action = WebUtils.getString(request, "action");
    String userId = request.getRemoteUser();
    updateSessionManager(request);//from   w w w  .  j  a  va 2 s .c  o m

    try {
        if (ServletFileUpload.isMultipartContent(request)) {
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            List<FileItem> items = upload.parseRequest(request);
            Css css = new Css();
            css.setActive(false);

            for (Iterator<FileItem> it = items.iterator(); it.hasNext();) {
                FileItem item = it.next();

                if (item.isFormField()) {
                    if (item.getFieldName().equals("action")) {
                        action = item.getString("UTF-8");
                    } else if (item.getFieldName().equals("css_id")) {
                        if (!item.getString("UTF-8").isEmpty()) {
                            css.setId(new Long(item.getString("UTF-8")).longValue());
                        }
                    } else if (item.getFieldName().equals("css_name")) {
                        css.setName(item.getString("UTF-8"));
                    } else if (item.getFieldName().equals("css_context")) {
                        css.setContext(item.getString("UTF-8"));
                    } else if (item.getFieldName().equals("css_content")) {
                        css.setContent(item.getString("UTF-8"));
                    } else if (item.getFieldName().equals("css_active")) {
                        css.setActive(true);
                    }
                }
            }

            if (action.equals("edit")) {
                CssDAO.getInstance().update(css);

                // Activity log
                UserActivity.log(userId, "ADMIN_CSS_UPDATE", String.valueOf(css.getId()), null, css.getName());
            } else if (action.equals("delete")) {
                String name = WebUtils.getString(request, "css_name");
                CssDAO.getInstance().delete(css.getId());

                // Activity log
                UserActivity.log(userId, "ADMIN_CSS_DELETE", String.valueOf(css.getId()), null, name);
            } else if (action.equals("create")) {
                long id = CssDAO.getInstance().create(css);

                // Activity log
                UserActivity.log(userId, "ADMIN_CSS_CREATE", String.valueOf(id), null, css.getName());
            }
        }

        list(userId, request, response);
    } catch (FileUploadException e) {
        log.error(e.getMessage(), e);
        sendErrorRedirect(request, response, e);
    } catch (DatabaseException e) {
        log.error(e.getMessage(), e);
        sendErrorRedirect(request, response, e);
    }
}

From source file:controller.ControlPembayaran.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String timeStamp = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(Calendar.getInstance().getTime());
    String timeStamp2 = new SimpleDateFormat("yyyyMMdd").format(Calendar.getInstance().getTime());

    Pembayaran p = new Pembayaran();
    DatabaseManager db = new DatabaseManager();

    //Menyimpan file ke dalam sistem
    File file;/*from   w ww. ja v a 2  s  .c o m*/
    int maxFileSize = 5000 * 1024;
    int maxMemSize = 5000 * 1024;
    String filePath = "c:/Apache/";

    String contentType = request.getContentType();
    if (contentType.indexOf("multipart/form-data") >= 0) {

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(maxMemSize);
        factory.setRepository(new File("c:\\temp"));
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(maxFileSize);
        try {
            List fileItems = upload.parseRequest(request);
            Iterator i = fileItems.iterator();

            while (i.hasNext()) {
                FileItem fi = (FileItem) i.next();
                if (!fi.isFormField()) {
                    if (fi.getName().contains(".csv")) {
                        String fieldName = fi.getFieldName();
                        String fileName = fi.getName();
                        boolean isInMemory = fi.isInMemory();
                        long sizeInBytes = fi.getSize();
                        file = new File(filePath + "DataPembayaran_" + timeStamp + ".csv");
                        fi.write(file);
                    } else {
                        throw new Exception("Format File Salah");
                    }
                }
            }
        } catch (Exception ex) {
            returnError(request, response, ex);
        }
    } else {
        Exception e = new Exception("no file uploaded");
        returnError(request, response, e);
    }
    //Membaca file dari dalam sistem
    String csvFile = filePath + "DataPembayaran_" + timeStamp + ".csv";
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ",";

    try {
        br = new BufferedReader(new FileReader(csvFile));
        int counter = 1;
        while ((line = br.readLine()) != null) {

            // use comma as separator
            String[] dataSet = line.split(cvsSplitBy);
            p.setID(timeStamp2 + "_" + counter);
            p.setWaktuPembayaran(dataSet[0]);
            p.setNoRekening(dataSet[1]);
            p.setJumlahPembayaran(Double.parseDouble(dataSet[2]));
            p.setNis(dataSet[3].substring(0, 5));
            p.setBulanTagihan(Integer.parseInt(dataSet[3].substring(6)));
            //Membandingkan nis, jumlah, bulan pembayaran ke tagihan
            Tagihan[] t = Tagihan.getListTagihan(p.getNis());
            for (int i = 0; i < t.length; i++) {
                if (t[i].getNis().equals(p.getNis()) && t[i].getJumlah_pembayaran() == p.getJumlahPembayaran()
                        && t[i].getBulan_tagihan() == p.getBulanTagihan())// bandingkan jumlah pembayaran
                {
                    //Masukan data pembayaran ke database
                    Pembayaran.simpanPembayaran(p);
                    //update status pembayaran tagihan
                    t[i].verifikasiSukses(p.getNis(), p.getBulanTagihan());//update status bayar tagihan menjadi sudah bayar
                }
            }
            counter++;
        }
        this.tampil(request, response, "Data Terverifikasi");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    //        }
}

From source file:br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor.java

public void intercept(InterceptorStack stack, ResourceMethod method, Object instance)
        throws InterceptionException {
    logger.info("Request contains multipart data. Try to parse with commons-upload.");

    FileItemFactory factory = createFactoryForDiskBasedFileItems(config.getDirectory());

    ServletFileUpload uploader = fileUploadCreator.create(factory);
    uploader.setSizeMax(config.getSizeLimit());

    try {/*from   www .  jav  a 2s  .c  om*/
        final List<FileItem> items = uploader.parseRequest(request);
        logger.debug("Found {} attributes in the multipart form submission. Parsing them.", items.size());

        final Multimap<String, String> params = LinkedListMultimap.create();

        for (FileItem item : items) {
            String name = item.getFieldName();
            name = fixIndexedParameters(name);

            if (item.isFormField()) {
                logger.debug("{} is a field", name);
                params.put(name, getValue(item));

            } else if (isNotEmpty(item)) {
                logger.debug("{} is a file", name);
                processFile(item, name);

            } else {
                logger.debug("A file field was empty: {}", item.getFieldName());
            }
        }

        for (String paramName : params.keySet()) {
            Collection<String> paramValues = params.get(paramName);
            parameters.setParameter(paramName, paramValues.toArray(new String[paramValues.size()]));
        }

    } catch (final SizeLimitExceededException e) {
        reportSizeLimitExceeded(e);

    } catch (FileUploadException e) {
        logger.warn("There was some problem parsing this multipart request, "
                + "or someone is not sending a RFC1867 compatible multipart request.", e);
    }

    stack.next(method, instance);
}

From source file:com.bibisco.filters.FileFilter.java

/**
 * Handling of requests in multipart-encoded format.
 * /*  ww  w .j  a  va2 s  . co  m*/
 * <p>Decodes MIME payload and extracts each field and file.
 * 
 * @param pRequest
 * @throws FileUploadException: see Jakarta commons FileUpload library
 * @throws IOException
 */
@SuppressWarnings("unchecked")
private void handleIt(ServletRequest pRequest) throws FileUploadException, IOException {
    DiskFileItemFactory lDiskFileItemFactory = new DiskFileItemFactory();
    lDiskFileItemFactory.setSizeThreshold(mIntDiskThreshold);
    lDiskFileItemFactory.setRepository(new File(mStrTmpDir));
    ServletFileUpload lServletFileUpload = new ServletFileUpload(lDiskFileItemFactory);
    lServletFileUpload.setSizeMax(mIntRejectThreshold);

    List<FileItem> lListFileItem = lServletFileUpload.parseRequest((HttpServletRequest) pRequest);
    for (FileItem lFileItem : lListFileItem)
        if (!lFileItem.isFormField()) { // file detected
            mLog.info("elaborating file ", lFileItem.getName());
            processUploadedFile(lFileItem, pRequest);
        } else // regular form field
            processRegularFormField(lFileItem, pRequest);
}

From source file:eg.agrimarket.controller.SignUpController.java

/**
 * Handles the HTTP <code>POST</code> method.
 *
 * @param request servlet request//from w  ww  .  j  a v a  2 s  .c o m
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    CreditDao creditDao = new CreditDaoImpl();

    try {

        boolean creditExist = false;

        DiskFileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        List<FileItem> items = upload.parseRequest(request);
        Iterator<FileItem> it = items.iterator();
        HttpSession session = request.getSession(false);
        User user = new User();
        Credit credit = new Credit();
        UserDao userDaoImpl = new UserDaoImpl();
        ArrayList<eg.agrimarket.model.dto.Interest> newInterests = new ArrayList<>();
        while (it.hasNext()) {
            FileItem item = it.next();
            if (!item.isFormField()) {
                byte[] image = item.get();
                if (image != null && image.length != 0) {
                    user.setImage(image);
                }
                System.out.println(user.getImage());
            } else {
                switch (item.getFieldName()) {
                case "name":
                    user.setUserName(item.getString());
                    break;
                case "mail":
                    user.setEmail(item.getString());

                    break;
                case "password":
                    user.setPassword(item.getString());
                    break;
                case "job":
                    user.setJob(item.getString());
                    break;
                case "date":
                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
                    LocalDate date = LocalDate.parse(item.getString(), formatter);
                    user.setDOB(date);
                    break;
                case "address":
                    user.setAddress(item.getString());
                    break;
                case "credit":
                    user.setCreditNumber(item.getString());
                    credit.setNumber(item.getString());
                    if (creditDao.checkCredit(credit)) {//credit number is exist is 
                        if (!(userDaoImpl.isCreditNumberAssigned(credit))) {
                            creditExist = true;
                            System.out.println("creditExist = true;");
                        } else {

                            creditExist = false;
                            System.out.println("creditExist = falsefalse;");

                        }
                    } else {
                        creditExist = false;

                        System.out.println("creditExist=false;");

                    }
                    break;

                default:
                    eg.agrimarket.model.dto.Interest interest = new eg.agrimarket.model.dto.Interest();
                    interest.setId(Integer.parseInt(item.getString()));
                    interest.setName(item.getFieldName());
                    newInterests.add(interest);
                    System.out.println(item.getFieldName() + " : " + item.getString());
                }
            }
        }

        // check if user exist in Db 
        if (creditExist) {
            user.setInterests(newInterests);
            UserDaoImpl userDao = new UserDaoImpl();

            //
            userDao.signUp(user);
            session.setAttribute("user", user);

            System.out.println(user.getInterests());
            System.out.println(user.getImage());

            response.sendRedirect("index.jsp");
        } else {

            response.sendRedirect("sign_up.jsp");
            System.out.println("user didnt saved");

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

}

From source file:com.bigdata.rockstor.console.UploadServlet.java

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    if (!ServletFileUpload.isMultipartContent(req)) {
        LOG.error("It is not a MultipartContent, return error.");
        resp.sendError(500, "It is not a MultipartContent, return error.");
        return;//from  w ww.ja v a 2s.  c o  m
    }

    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    upload.setFileSizeMax(1024 * 1024 * 512);
    List<FileItem> fileItems = null;
    try {
        fileItems = upload.parseRequest(req);
        LOG.info("parse requeset success : items num : " + fileItems.size());
    } catch (FileUploadException e) {
        LOG.error("parse requeset failed !");
        resp.sendError(500, "parse requeset failed !");
        return;
    }

    HashMap<String, String> headMap = new HashMap<String, String>();
    FileItem theFile = null;
    long size = -1;
    URI uri = null;

    Iterator<FileItem> iter = fileItems.iterator();
    while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();

        if (item.isFormField()) {
            String name = item.getFieldName();
            String value = null;
            try {
                value = item.getString("UTF-8").trim();
            } catch (UnsupportedEncodingException e1) {
                e1.printStackTrace();
            }
            LOG.info("Parse head info : " + name + " -- " + value);
            if (name.equals("ObjName")) {
                try {
                    uri = new URI(value);
                } catch (URISyntaxException e) {
                    LOG.info("Parse uri info error : " + value);
                    uri = null;
                }
            } else if (name.equals("ObjSize")) {
                try {
                    size = Long.parseLong(value);
                } catch (Exception e) {
                    LOG.error("Parse objSize error : " + value);
                }
            } else {
                headMap.put(name, value);
            }
        } else {
            theFile = item;
        }
    }

    if (size == -1 || uri == null || theFile == null || headMap.size() == 0) {
        LOG.error("Parse upload info error : size==-1 || uri == null || theFile == null || headMap.size()==0");
        resp.sendError(500,
                "Parse upload info error : size==-1 || uri == null || theFile == null || headMap.size()==0");
        return;
    }

    HttpPut put = new HttpPut();
    put.setURI(uri);
    for (Map.Entry<String, String> e : headMap.entrySet()) {
        if ("Filename".equals(e.getKey()))
            continue;
        put.setHeader(e.getKey(), e.getValue());
    }
    put.setEntity(new InputStreamEntity(theFile.getInputStream(), size));
    DefaultHttpClient client = new DefaultHttpClient();
    HttpResponse response = client.execute(put);
    if (200 != response.getStatusLine().getStatusCode()) {
        LOG.error("Put object error : " + response.getStatusLine().getStatusCode() + " : "
                + response.getStatusLine().getReasonPhrase());
        resp.sendError(response.getStatusLine().getStatusCode(), response.getStatusLine().getReasonPhrase());
        return;
    }
    LOG.info("Put object OK : " + uri);
    response.setStatusCode(200);
}