Example usage for org.springframework.web.multipart.commons CommonsMultipartFile getFileItem

List of usage examples for org.springframework.web.multipart.commons CommonsMultipartFile getFileItem

Introduction

In this page you can find the example usage for org.springframework.web.multipart.commons CommonsMultipartFile getFileItem.

Prototype

public final FileItem getFileItem() 

Source Link

Document

Return the underlying org.apache.commons.fileupload.FileItem instance.

Usage

From source file:org.springframework.web.multipart.commons.CommonsMultipartResolverTests.java

@Test
public void withServletContextAndFilterWithCustomBeanName() throws Exception {
    StaticWebApplicationContext wac = new StaticWebApplicationContext();
    wac.setServletContext(new MockServletContext());
    wac.refresh();/*w  w w. j a v  a  2 s .  c o  m*/
    wac.registerSingleton("myMultipartResolver", MockCommonsMultipartResolver.class,
            new MutablePropertyValues());
    wac.getServletContext().setAttribute(WebUtils.TEMP_DIR_CONTEXT_ATTRIBUTE, new File("mytemp"));
    wac.getServletContext().setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac);
    CommonsMultipartResolver resolver = new CommonsMultipartResolver(wac.getServletContext());
    assertTrue(resolver.getFileItemFactory().getRepository().getAbsolutePath().endsWith("mytemp"));

    MockFilterConfig filterConfig = new MockFilterConfig(wac.getServletContext(), "filter");
    filterConfig.addInitParameter("multipartResolverBeanName", "myMultipartResolver");

    final List<MultipartFile> files = new ArrayList<>();
    FilterChain filterChain = new FilterChain() {
        @Override
        public void doFilter(ServletRequest originalRequest, ServletResponse response) {
            if (originalRequest instanceof MultipartHttpServletRequest) {
                MultipartHttpServletRequest request = (MultipartHttpServletRequest) originalRequest;
                files.addAll(request.getFileMap().values());
            }
        }
    };

    MultipartFilter filter = new MultipartFilter() {
        private boolean invoked = false;

        @Override
        protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
                FilterChain filterChain) throws ServletException, IOException {
            super.doFilterInternal(request, response, filterChain);
            super.doFilterInternal(request, response, filterChain);
            if (invoked) {
                throw new ServletException("Should not have been invoked twice");
            }
            invoked = true;
        }
    };
    filter.init(filterConfig);

    MockHttpServletRequest originalRequest = new MockHttpServletRequest();
    originalRequest.setMethod("POST");
    originalRequest.setContentType("multipart/form-data");
    originalRequest.addHeader("Content-type", "multipart/form-data");
    HttpServletResponse response = new MockHttpServletResponse();
    filter.doFilter(originalRequest, response, filterChain);
    CommonsMultipartFile file1 = (CommonsMultipartFile) files.get(0);
    CommonsMultipartFile file2 = (CommonsMultipartFile) files.get(1);
    assertTrue(((MockFileItem) file1.getFileItem()).deleted);
    assertTrue(((MockFileItem) file2.getFileItem()).deleted);
}

From source file:ubic.gemma.web.util.upload.CommonsMultipartMonitoredResolver.java

@Override
public void cleanupMultipart(MultipartHttpServletRequest request) {

    if (request instanceof FailedMultipartHttpServletRequest)
        return;/*from w w  w.jav  a2  s. com*/

    Map<String, MultipartFile> multipartFiles = request.getFileMap();
    for (MultipartFile multipartFile : multipartFiles.values()) {
        CommonsMultipartFile file = (CommonsMultipartFile) multipartFile;
        if (logger.isDebugEnabled()) {
            logger.debug("Cleaning up multipart file [" + file.getName() + "] with original filename ["
                    + file.getOriginalFilename() + "], stored " + file.getStorageDescription());
        }
        file.getFileItem().delete();
    }
}