Example usage for org.springframework.web.multipart MultipartHttpServletRequest getFileMap

List of usage examples for org.springframework.web.multipart MultipartHttpServletRequest getFileMap

Introduction

In this page you can find the example usage for org.springframework.web.multipart MultipartHttpServletRequest getFileMap.

Prototype

Map<String, MultipartFile> getFileMap();

Source Link

Document

Return a java.util.Map of the multipart files contained in this request.

Usage

From source file:com.wavemaker.runtime.server.ServerUtils.java

/**
 * Merge parameters from fileMap (if it exists) and parametersMap. All parameters are returned in Object[], even
 * those from fileMap./*from w  w w  .j  a  v a2  s . co m*/
 * 
 * @param request The original request.
 * @return A merged map of all parameters.
 */
@SuppressWarnings("unchecked")
public static Map<String, Object[]> mergeParams(HttpServletRequest request) {

    Map<String, Object[]> params = new HashMap<String, Object[]>();
    // Set<Map.Entry<?, ?>> entries;
    Set<Map.Entry<String, MultipartFile>> entries;

    if (request instanceof MultipartHttpServletRequest) {
        MultipartHttpServletRequest mrequest = (MultipartHttpServletRequest) request;
        entries = mrequest.getFileMap().entrySet();
        for (Map.Entry<?, ?> e : entries) {
            params.put((String) e.getKey(), new Object[] { e.getValue() });
        }
    }

    entries = request.getParameterMap().entrySet();
    for (Map.Entry<?, ?> e : entries) {
        String key = (String) e.getKey();
        Object[] value = (Object[]) e.getValue();
        if (params.get(key) == null) {
            params.put(key, (Object[]) e.getValue());
        } else {
            Object[] newArray = new Object[value.length + params.get(key).length];
            System.arraycopy(params.get(key), 0, newArray, 0, params.get(key).length);
            System.arraycopy(value, 0, newArray, params.get(key).length, value.length);
            params.put(key, newArray);
        }
    }

    return params;
}

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   ww  w .  j a v  a  2 s.  c om
 *
 * 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:com.thoughtworks.go.agent.testhelpers.FakeArtifactPublisherServlet.java

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
    MultipartHttpServletRequest httpServletRequest = multipartResolver.resolveMultipart(request);
    Map<String, MultipartFile> map = httpServletRequest.getFileMap();
    MultipartFile multipartFile = map.values().iterator().next();
    receivedFiles.add(multipartFile.getOriginalFilename());
}

From source file:org.sakaiproject.metaobj.utils.mvc.impl.servlet.ServletRequestBeanDataBinder.java

public void bind(ServletRequest request) {
    // bind normal HTTP parameters
    bind(new ServletRequestParameterPropertyValues(request));

    // bind multipart files
    if (request instanceof MultipartHttpServletRequest) {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        bind(new MutablePropertyValues(multipartRequest.getFileMap()));
    }//  w  w w.  j av  a2  s.co m
}

From source file:uk.ac.bbsrc.tgac.browser.web.UploadController.java

private List<MultipartFile> getMultipartFiles(MultipartHttpServletRequest request) {
    List<MultipartFile> files = new ArrayList<MultipartFile>();
    Map<String, MultipartFile> fMap = request.getFileMap();
    for (String fileName : fMap.keySet()) {
        MultipartFile fileItem = fMap.get(fileName);
        if (fileItem.getSize() > 0) {
            files.add(fileItem);/*  www . jav  a2  s . c om*/
        }
    }
    return files;
}

From source file:cn.clxy.studio.common.web.multipart.GMultipartResolver.java

/**
 * Clean up multi part./*  w  w w  .  jav  a  2  s .com*/
 */
public void cleanupMultipart(MultipartHttpServletRequest request) {
    if (request != null) {
        try {
            cleanupFileItems(request.getFileMap().values());
        } catch (Throwable ex) {
            logger.warn("Failed to perform multipart cleanup for servlet request", ex);
        }
    }
}

From source file:com.br.helpdesk.controller.AttachmentsController.java

/**
 * upload//w  w  w  . jav a 2 s  .c o  m
 */
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String uploadFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
    String username = request.getParameter("username");
    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    Collection<MultipartFile> filesCollection = multipartRequest.getFileMap().values();
    try {
        for (MultipartFile multipartFile : filesCollection) {
            String fileName = "##" + username + "##" + multipartFile.getOriginalFilename();
            attachmentsService.createFile(fileName, multipartFile.getBytes());
        }
    } catch (IOException e) {
        return "{success: false}";
    }
    return "{success: true}";
}

From source file:com.laxser.blitz.web.paramresolver.ServletRequestDataBinder.java

/**
 * Bind the parameters of the given request to this binder's target,
 * also binding multipart files in case of a multipart request.
 * <p>//w w w .ja  v  a2 s .  c  o  m
 * This call can create field errors, representing basic binding errors
 * like a required field (code "required"), or type mismatch between
 * value and bean property (code "typeMismatch").
 * <p>
 * Multipart files are bound via their parameter name, just like normal
 * HTTP parameters: i.e. "uploadedFile" to an "uploadedFile" bean
 * property, invoking a "setUploadedFile" setter method.
 * <p>
 * The type of the target property for a multipart file can be
 * MultipartFile, byte[], or String. The latter two receive the
 * contents of the uploaded file; all metadata like original file name,
 * content type, etc are lost in those cases.
 * 
 * @param request request with parameters to bind (can be multipart)
 * @see org.springframework.web.multipart.MultipartHttpServletRequest
 * @see org.springframework.web.multipart.MultipartFile
 * @see #bindMultipartFiles
 * @see #bind(org.springframework.beans.PropertyValues)
 */
public void bind(ServletRequest request) {
    MutablePropertyValues mpvs = new MutablePropertyValues(WebUtils.getParametersStartingWith(request, prefix));
    if (request instanceof MultipartHttpServletRequest) {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        bindMultipartFiles(multipartRequest.getFileMap(), mpvs);
    }
    doBind(mpvs);
}

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

public boolean isIllegalFileSuffix(MultipartHttpServletRequest mRequest) {

    Map<String, MultipartFile> fileMap = mRequest.getFileMap();

    for (Iterator<Map.Entry<String, MultipartFile>> it = fileMap.entrySet().iterator(); it.hasNext();) {

        Map.Entry<String, MultipartFile> entry = it.next();
        MultipartFile mFile = entry.getValue();

        String origFileName = mFile.getOriginalFilename();
        String name = mFile.getName();
        int a = origFileName.indexOf(".", -1);
        Pattern pattern = Pattern.compile(FILE_FILTER_REGX, Pattern.CASE_INSENSITIVE);
        if (a != -1) {
            String suffix = origFileName.substring(a + 1);
            if (pattern.matcher(suffix).matches()) {
                recordXssRequestInfo(mRequest, origFileName);
                return true;
            } else {
                return false;
            }// ww w.  j  av a2 s.  c o m

        } else {
            return false;
        }
    }
    return false;
}

From source file:com.ineunet.knife.upload.controller.UploadController.java

@RequestMapping(value = "doUpload", method = RequestMethod.POST)
public @ResponseBody String doUpload(HttpServletRequest request, @RequestParam(value = "field") String field)
        throws IOException {
    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
    WebPaths.init(request);/*  ww w  . j  av  a 2 s .c  om*/
    String rootPath = WebPaths.getRootPath();
    String column = ClassStrUtils.hump2Underline(field);

    // If associatedId is null or 0, generate one.
    Long associatedId = this.getService().validateId(column, null);
    String fileName = "";
    for (Map.Entry<String, MultipartFile> uf : fileMap.entrySet()) {
        MultipartFile mf = uf.getValue();
        String originalName = mf.getOriginalFilename();
        this.getService().setOriginalFileName(column, associatedId, originalName);
        if (!UploadUtils.checkFileType(originalName)) {
            throw new RuntimeException("unsupported file type");
        }

        fileName = UploadUtils.buildTempFileName(this.getService().tableName(), column, associatedId,
                originalName);
        String key = this.getService().getKey(column, associatedId);
        this.getService().setTempFileName(key, fileName);

        // copy file
        String tempPath = rootPath + UploadUtils.TEMP_PATH_PART;
        File file = new File(tempPath + fileName);
        FileCopyUtils.copy(mf.getBytes(), file);

        this.getService().setTempContent(mf.getBytes(), column, associatedId);
        break;
    }
    return fileName;
}