Example usage for org.springframework.web.multipart MultipartResolver resolveMultipart

List of usage examples for org.springframework.web.multipart MultipartResolver resolveMultipart

Introduction

In this page you can find the example usage for org.springframework.web.multipart MultipartResolver resolveMultipart.

Prototype

MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException;

Source Link

Document

Parse the given HTTP request into multipart files and parameters, and wrap the request inside a org.springframework.web.multipart.MultipartHttpServletRequest object that provides access to file descriptors and makes contained parameters accessible via the standard ServletRequest methods.

Usage

From source file:com.jaspersoft.jasperserver.rest.RESTUtils.java

/**
 * Extract the attachments from the request and put the in the list of
 * input attachments of the service./*from   w  ww  . ja  va  2 s  .  c  o m*/
 *
 * The method returns the currenst HttpServletRequest if the message is not
 * multipart, otherwise it returns a MultipartHttpServletRequest
 *
 *
 * @param service
 * @param hRequest
 */
public static HttpServletRequest extractAttachments(LegacyRunReportService service,
        HttpServletRequest hRequest) {
    //Check whether we're dealing with a multipart request
    MultipartResolver resolver = new CommonsMultipartResolver();

    // handles the PUT multipart requests
    if (isMultipartContent(hRequest) && hRequest.getContentLength() != -1) {
        MultipartHttpServletRequest mreq = resolver.resolveMultipart(hRequest);
        if (mreq != null && mreq.getFileMap().size() != 0) {
            Iterator iterator = mreq.getFileNames();
            String fieldName = null;
            while (iterator.hasNext()) {
                fieldName = (String) iterator.next();
                MultipartFile file = mreq.getFile(fieldName);
                if (file != null) {
                    DataSource ds = new MultipartFileDataSource(file);
                    service.getInputAttachments().put(fieldName, ds);
                }
            }
            if (log.isDebugEnabled()) {
                log.debug(service.getInputAttachments().size() + " attachments were extracted from the PUT");
            }
            return mreq;
        }
        // handles the POST multipart requests
        else {
            if (hRequest instanceof DefaultMultipartHttpServletRequest) {
                DefaultMultipartHttpServletRequest dmServletRequest = (DefaultMultipartHttpServletRequest) hRequest;

                Iterator iterator = ((DefaultMultipartHttpServletRequest) hRequest).getFileNames();
                String fieldName = null;
                while (iterator.hasNext()) {
                    fieldName = (String) iterator.next();
                    MultipartFile file = dmServletRequest.getFile(fieldName);
                    if (file != null) {
                        DataSource ds = new MultipartFileDataSource(file);
                        service.getInputAttachments().put(fieldName, ds);
                    }
                }
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(service.getInputAttachments().size() + " attachments were extracted from the POST");
    }
    return hRequest;

}

From source file:org.hdiv.config.multipart.SpringMVCMultipartConfig.java

/**
 * Parses the input stream and partitions the parsed items into a set of form fields and a set of file items.
 * /*from  w  w  w .ja  va2 s .com*/
 * @param request
 *            The multipart request wrapper.
 * @param servletContext
 *            Our ServletContext object
 * @throws HdivMultipartException
 *             if an unrecoverable error occurs.
 */
public HttpServletRequest handleMultipartRequest(RequestWrapper request, ServletContext servletContext)
        throws HdivMultipartException {

    MultipartResolver multipartResolver = this.lookupMultipartResolver(servletContext);

    if (multipartResolver == null) {
        return request;
    }

    MultipartHttpServletRequest processedRequest = null;
    try {
        processedRequest = multipartResolver.resolveMultipart(request);

    } catch (MultipartException e) {

        HdivMultipartException exc = new HdivMultipartException(e);
        throw exc;
    }

    return processedRequest;
}

From source file:com.myhexin.filter.FileMultipartFilter.java

/**
 * //from w w w .  j  ava  2 s  .  com
 */
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
        FilterChain filterChain) throws ServletException, IOException {

    MultipartResolver multipartResolver = lookupMultipartResolver(request);

    HttpServletRequest processedRequest = request;
    if (multipartResolver.isMultipart(processedRequest)) {
        if (logger.isDebugEnabled()) {
            logger.debug("Resolving multipart request [" + processedRequest.getRequestURI()
                    + "] with MultipartFilter");
        }
        processedRequest = multipartResolver.resolveMultipart(processedRequest);

        if (XSSSecurityConfig.IS_CHECK_HEADER || XSSSecurityConfig.IS_CHECK_PARAMETER) {
            if (isIlleageXssParam((MultipartHttpServletRequest) processedRequest)) {//??
                processedRequest.getRequestDispatcher(XSSSecurityConfig.XSS_ERROR_PAGE_PATH).forward(request,
                        response);
                return;
            }
        }

        if (FILE_FILTER_ISOPEN) {
            if (isIllegalFileSuffix((MultipartHttpServletRequest) processedRequest)) {//??
                processedRequest.getRequestDispatcher(XSSSecurityConfig.XSS_ERROR_PAGE_PATH).forward(request,
                        response);
                return;
            }
        }

    } else {
        if (logger.isDebugEnabled()) {
            logger.debug("Request [" + processedRequest.getRequestURI() + "] is not a multipart request");
        }
    }

    try {
        filterChain.doFilter(processedRequest, response);
    } finally {
        if (processedRequest instanceof MultipartHttpServletRequest) {
            multipartResolver.cleanupMultipart((MultipartHttpServletRequest) processedRequest);
        }
    }
}

From source file:com.github.zhanhb.ckfinder.connector.handlers.command.FileUploadCommand.java

/**
 *
 * @param request http request//from  w w  w  .j  av  a 2s.  com
 * @param param the parameter
 * @param context ckfinder context
 * @throws ConnectorException when error occurs
 */
private void fileUpload(HttpServletRequest request, FileUploadParameter param, CKFinderContext context)
        throws ConnectorException {
    MultipartResolver multipartResolver = StandardHolder.RESOLVER;
    try {
        boolean multipart = multipartResolver.isMultipart(request);
        if (multipart) {
            log.debug("prepare resolveMultipart");
            MultipartHttpServletRequest resolveMultipart = multipartResolver.resolveMultipart(request);
            log.debug("finish resolveMultipart");
            try {
                Collection<MultipartFile> parts = resolveMultipart.getFileMap().values();
                for (MultipartFile part : parts) {
                    Path path = getPath(param.getType().getPath(), param.getCurrentFolder());
                    param.setFileName(getFileItemName(part));
                    validateUploadItem(part, path, param, context);
                    saveTemporaryFile(path, part, param, context);
                    return;
                }
            } finally {
                multipartResolver.cleanupMultipart(resolveMultipart);
            }
        }
        param.throwException("No file provided in the request.");
    } catch (MultipartException e) {
        log.debug("catch MultipartException", e);
        param.throwException(ErrorCode.UPLOADED_TOO_BIG);
    } catch (IOException e) {
        log.debug("catch IOException", e);
        param.throwException(ErrorCode.ACCESS_DENIED);
    }
}

From source file:com.jaspersoft.jasperserver.rest.utils.Utils.java

/**
 * Extract the attachments from the request and put the in the list of
 * input attachments of the service./*from   w w  w  .j  a  v  a  2s  . co m*/
 *
 * The method returns the currenst HttpServletRequest if the message is not
 * multipart, otherwise it returns a MultipartHttpServletRequest
 *
 *
 * @param service
 * @param hRequest
 */
public HttpServletRequest extractAttachments(LegacyRunReportService service, HttpServletRequest hRequest) {
    //Check whether we're dealing with a multipart request
    MultipartResolver resolver = new CommonsMultipartResolver();

    // handles the PUT multipart requests
    if (isMultipartContent(hRequest) && hRequest.getContentLength() != -1) {
        MultipartHttpServletRequest mreq = resolver.resolveMultipart(hRequest);
        if (mreq != null && mreq.getFileMap().size() != 0) {
            Iterator iterator = mreq.getFileNames();
            String fieldName = null;
            while (iterator.hasNext()) {
                fieldName = (String) iterator.next();
                MultipartFile file = mreq.getFile(fieldName);
                if (file != null) {
                    DataSource ds = new MultipartFileDataSource(file);
                    service.getInputAttachments().put(fieldName, ds);
                }
            }
            if (log.isDebugEnabled()) {
                log.debug(service.getInputAttachments().size() + " attachments were extracted from the PUT");
            }
            return mreq;
        }
        // handles the POST multipart requests
        else {
            if (hRequest instanceof DefaultMultipartHttpServletRequest) {
                DefaultMultipartHttpServletRequest dmServletRequest = (DefaultMultipartHttpServletRequest) hRequest;

                Iterator iterator = ((DefaultMultipartHttpServletRequest) hRequest).getFileNames();
                String fieldName = null;
                while (iterator.hasNext()) {
                    fieldName = (String) iterator.next();
                    MultipartFile file = dmServletRequest.getFile(fieldName);
                    if (file != null) {
                        DataSource ds = new MultipartFileDataSource(file);
                        service.getInputAttachments().put(fieldName, ds);
                    }
                }
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(service.getInputAttachments().size() + " attachments were extracted from the POST");
    }
    return hRequest;

}