List of usage examples for org.springframework.web.multipart MultipartHttpServletRequest getFileMap
Map<String, MultipartFile> getFileMap();
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; }