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

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

Introduction

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

Prototype

public ServletRequestContext(HttpServletRequest request) 

Source Link

Document

Construct a context for this request.

Usage

From source file:org.ednovo.gooru.application.server.service.uploadServlet.java

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {
    FileItem uploadedFileItem = null;//from  w ww.  j  a  va  2s.co m
    String fileName = "";
    JSONArray jsonArray = null;
    boolean isMultiPart = ServletFileUpload.isMultipartContent(new ServletRequestContext(request));
    if (isMultiPart) {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setFileSizeMax(31457280);
        String responsedata = "";
        try {
            try {
                @SuppressWarnings("rawtypes")
                java.util.List items = upload.parseRequest(request);
                ApplicationContext appContext = new ClassPathXmlApplicationContext("gooruContext-service.xml");
                Properties restConstants = (Properties) appContext.getBean("restConstants");
                for (int i = 0; i < items.size(); i++) {
                    uploadedFileItem = (FileItem) items.get(i);
                }
                String stoken = (String) request.getSession(false).getAttribute("gooru-session-token");
                try {
                    //This will replace all the non-word characters with '_' excluding the dot.
                    fileName = uploadedFileItem.getName().replaceAll("[^\\w.]", "_");
                } catch (Exception e) {
                    logger.error("Exception:::" + e);
                }
                String requestData = "uploadFileName=" + fileName + "&imageURL=&sessionToken=" + stoken;
                String url = UrlGenerator.generateUrl(restConstants.getProperty(REST_ENDPOINT),
                        UrlToken.FILE_UPLOAD_GET_URL, fileName, stoken);
                try {
                    responsedata = webInvokeForImage("POST", requestData, "multipart/form-data", request,
                            uploadedFileItem.get(), fileName, uploadedFileItem.getSize(), url);
                    jsonArray = new JSONArray(responsedata);
                } catch (UnsupportedEncodingException e) {
                    logger.error("UnsupportedEncodingException:::" + e);
                }
                response.setContentType("text/html");
                response.getOutputStream().print(jsonArray.get(0).toString());
                response.getOutputStream().flush();
            } catch (FileUploadBase.FileSizeLimitExceededException e) {
                logger.error("FileSizeLimitExceededException:::" + e);
                responsedata = "file size error";
                response.setContentType("text/html");
                response.getOutputStream().print(responsedata);
                response.getOutputStream().flush();
            }
        } catch (Exception e) {
            logger.error("Global exception:::" + e);
        }
    }
}

From source file:org.lainsoft.forge.flow.helper.GenericViewHelper.java

public Map track_parameters() {
    if (params == null || params.isEmpty()) {
        params = new TreeMap();
        params.put("request_params", request.getParameterMap());
        params.put("mime_params", new TreeMap());
        ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
        if (upload.isMultipartContent(new ServletRequestContext(request))) {
            System.out.println("FILEUPLOAD>Parsing params");

            List items = new ArrayList();
            try {
                items = upload.parseRequest(request);
            } catch (FileUploadException fue) {
                System.out.println("Couldn't parse request>" + fue);
                fue.printStackTrace();//from  ww w  .  j  a va2  s. c o  m
            }
            Map tracked_req_params = new TreeMap();
            Map tracked_mime_params = new TreeMap();
            for (int i = 0; i < items.size(); i++) {
                FileItem item = (FileItem) items.get(i);
                if (item.isFormField()) {
                    tracked_req_params.put(item.getFieldName(), item.getString());
                } else {
                    tracked_mime_params.put(item.getFieldName(), item);
                }
            }
            params.put("request_params", tracked_req_params);
            params.put("mime_params", tracked_mime_params);
        }
    }
    return params;
}

From source file:org.nuxeo.ecm.platform.ui.web.util.FileUploadHelper.java

/**
 * Parses a Multipart Servlet Request to extract blobs
 *//*  w  ww .j  av a  2s  .  c  om*/
public static List<Blob> parseRequest(HttpServletRequest request) throws FileUploadException, IOException {
    List<Blob> blobs = new ArrayList<Blob>();

    if (request instanceof MultipartRequest) {
        MultipartRequest seamMPRequest = (MultipartRequest) request;

        Enumeration<String> names = seamMPRequest.getParameterNames();
        while (names.hasMoreElements()) {
            String name = names.nextElement();
            try (InputStream in = seamMPRequest.getFileInputStream(name)) {
                if (in != null) {
                    Blob blob = Blobs.createBlob(in);
                    blob.setFilename(seamMPRequest.getFileName(name));
                    blobs.add(blob);
                }
            }
        }
    } else {
        // fallback method for non-seam servlet request
        FileUpload fu = new FileUpload(new DiskFileItemFactory());
        String fileNameCharset = request.getHeader("FileNameCharset");
        if (fileNameCharset != null) {
            fu.setHeaderEncoding(fileNameCharset);
        }
        ServletRequestContext requestContext = new ServletRequestContext(request);
        List<FileItem> fileItems = fu.parseRequest(requestContext);
        for (FileItem item : fileItems) {
            try (InputStream is = item.getInputStream()) {
                Blob blob = Blobs.createBlob(is);
                blob.setFilename(item.getName());
                blobs.add(blob);
            }
        }
    }
    return blobs;
}

From source file:org.nuxeo.ecm.webengine.forms.FormData.java

public FormData(HttpServletRequest request) {
    this.request = request;
    isMultipart = getIsMultipartContent();
    if (isMultipart) {
        ctx = new ServletRequestContext(request);
    }//w  w  w.  j av  a2  s . co  m
}

From source file:org.nuxeo.ecm.webengine.forms.FormData.java

@SuppressWarnings("unchecked")
public Map<String, List<FileItem>> getMultiPartItems() {
    if (items == null) {
        if (!isMultipart) {
            throw new IllegalStateException("Not in a multi part form request");
        }//from  w ww. j a va  2  s .  c  o m
        try {
            items = new HashMap<String, List<FileItem>>();
            ServletRequestContext ctx = new ServletRequestContext(request);
            List<FileItem> fileItems = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(ctx);
            for (FileItem item : fileItems) {
                String key = item.getFieldName();
                List<FileItem> list = items.get(key);
                if (list == null) {
                    list = new ArrayList<FileItem>();
                    items.put(key, list);
                }
                list.add(item);
            }
        } catch (FileUploadException e) {
            throw WebException.wrap("Failed to get uploaded files", e);
        }
    }
    return items;
}

From source file:org.nuxeo.ecm.webengine.util.FormData.java

@SuppressWarnings("unchecked")
public Map<String, List<FileItem>> getMultiPartItems() throws WebException {
    if (items == null) {
        if (!isMultipart) {
            throw new IllegalStateException("Not in a multi part form request");
        }//from ww w.ja v a2  s.  c o m
        try {
            items = new HashMap<String, List<FileItem>>();
            ServletRequestContext ctx = new ServletRequestContext(request);
            List<FileItem> fileItems = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(ctx);
            for (FileItem item : fileItems) {
                String key = item.getFieldName();
                List<FileItem> list = items.get(key);
                if (list == null) {
                    list = new ArrayList<FileItem>();
                    items.put(key, list);
                }
                list.add(item);
            }
        } catch (FileUploadException e) {
            throw new WebException("Failed to get uploaded files", e);
        }
    }
    return items;
}

From source file:org.openbravo.base.VariablesBase.java

/**
 * Basic constructor that takes the request object and saves it to be used by the subsequent
 * methods/*from   w w w. j  a v  a2 s.c om*/
 * 
 * @param request
 *          HttpServletRequest object originating from the user request.
 */
@SuppressWarnings("unchecked")
public VariablesBase(HttpServletRequest request) {
    if (request == null) {
        // logging exception to obtain stack trace to pinpoint the cause
        log4j.warn("Creating a VariablesBase with a null request", new Exception());
        this.session = new HttpSessionWrapper();
        this.isMultipart = false;
    } else {
        this.session = request.getSession(true);
        this.httpRequest = request;
        this.isMultipart = ServletFileUpload.isMultipartContent(new ServletRequestContext(request));
        if (isMultipart) {
            DiskFileItemFactory factory = new DiskFileItemFactory();
            // factory.setSizeThreshold(yourMaxMemorySize);
            // factory.setRepositoryPath(yourTempDirectory);
            ServletFileUpload upload = new ServletFileUpload(factory);
            // upload.setSizeMax(yourMaxRequestSize);
            try {
                items = upload.parseRequest(request);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
}

From source file:org.opencms.ugc.CmsUgcEditService.java

/**
 * @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
 *//*from ww  w  .j av a2  s  .  co m*/
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    boolean isMultiPart = FileUploadBase.isMultipartContent(new ServletRequestContext(request));

    if (isMultiPart) {
        try {
            handleUpload(request, response);
        } finally {
            clearThreadStorage();
        }
    } else {
        super.service(request, response);
    }
}

From source file:org.openmrs.web.filter.startuperror.StartupErrorFilter.java

/**
 * @see org.openmrs.web.filter.StartupFilter#doPost(javax.servlet.http.HttpServletRequest,
 *      javax.servlet.http.HttpServletResponse)
 *//*  www  .  j  a  v a  2  s . co  m*/
@Override
protected void doPost(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
        throws IOException, ServletException {
    // if they are uploading modules
    if (getModel().errorAtStartup instanceof OpenmrsCoreModuleException) {
        RequestContext requestContext = new ServletRequestContext(httpRequest);
        if (!ServletFileUpload.isMultipartContent(requestContext)) {
            throw new ServletException("The request is not a valid multipart/form-data upload request");
        }

        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        try {
            Context.openSession();
            List<FileItem> items = upload.parseRequest(requestContext);
            for (FileItem item : items) {
                InputStream uploadedStream = item.getInputStream();
                ModuleUtil.insertModuleFile(uploadedStream, item.getName());
            }
        } catch (FileUploadException ex) {
            throw new ServletException("Error while uploading file(s)", ex);
        } finally {
            Context.closeSession();
        }

        Map<String, Object> map = new HashMap<String, Object>();
        map.put("success", Boolean.TRUE);
        renderTemplate("coremoduleerror.vm", map, httpResponse);

        // TODO restart openmrs here instead of going to coremodulerror template
    }
}

From source file:org.origin.common.servlet.WebConsoleUtil.java

/**
 * An utility method, that is used to filter out simple parameter from file parameter when multipart transfer encoding is used.
 *
 * This method processes the request and sets a request attribute {@link AbstractWebConsolePlugin#ATTR_FILEUPLOAD}. The attribute value is a {@link Map}
 * where the key is a String specifying the field name and the value is a {@link org.apache.commons.fileupload.FileItem}.
 *
 * @param request//from w  w w.j ava 2s . c  om
 *            the HTTP request coming from the user
 * @param name
 *            the name of the parameter
 * @return if not multipart transfer encoding is used - the value is the parameter value or <code>null</code> if not set. If multipart is used, and the
 *         specified parameter is field - then the value of the parameter is returned.
 */
public static final String getParameter(HttpServletRequest request, String name) {
    // just get the parameter if not a multipart/form-data POST
    if (!FileUploadBase.isMultipartContent(new ServletRequestContext(request))) {
        return request.getParameter(name);
    }

    // check, whether we already have the parameters
    Map params = (Map) request.getAttribute(ATTR_FILEUPLOAD);
    if (params == null) {
        // parameters not read yet, read now
        // Create a factory for disk-based file items
        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(256000);
        // See https://issues.apache.org/jira/browse/FELIX-4660
        final Object repo = request.getAttribute(ATTR_FILEUPLOAD_REPO);
        if (repo instanceof File) {
            factory.setRepository((File) repo);
        }

        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(-1);

        // Parse the request
        params = new HashMap();
        try {
            List items = upload.parseRequest(request);
            for (Iterator fiter = items.iterator(); fiter.hasNext();) {
                FileItem fi = (FileItem) fiter.next();
                FileItem[] current = (FileItem[]) params.get(fi.getFieldName());
                if (current == null) {
                    current = new FileItem[] { fi };
                } else {
                    FileItem[] newCurrent = new FileItem[current.length + 1];
                    System.arraycopy(current, 0, newCurrent, 0, current.length);
                    newCurrent[current.length] = fi;
                    current = newCurrent;
                }
                params.put(fi.getFieldName(), current);
            }
        } catch (FileUploadException fue) {
            // TODO: log
        }
        request.setAttribute(ATTR_FILEUPLOAD, params);
    }

    FileItem[] param = (FileItem[]) params.get(name);
    if (param != null) {
        for (int i = 0; i < param.length; i++) {
            if (param[i].isFormField()) {
                return param[i].getString();
            }
        }
    }

    // no valid string parameter, fail
    return null;
}