/** * 这里是处理Multipart http的方法。如果这个返回值为true,那么Multipart http body就会MyMultipartResolver 消耗掉.如果这里返回false * 那么就会交给后面的自己写的处理函数处理例如刚才ServletFileUpload 所在的函数 * @see org.springframework.web.multipart.commons.CommonsMultipartResolver#isMultipart(javax.servlet.http.HttpServletRequest) */ @Override public boolean isMultipart(HttpServletRequest request) { for (String url: excludeUrlArray) { // 这里可以自己换判断 if (request.getRequestURI().contains(url)) { return false; } } return super.isMultipart(request); }
@Override public boolean isMultipart(final HttpServletRequest request) { HdivMultipartException multipartException = (HdivMultipartException) request.getAttribute(IMultipartConfig.FILEUPLOAD_EXCEPTION); if (multipartException != null) { Exception orig = multipartException.getOriginal(); if (orig instanceof MultipartException) { throw (MultipartException) orig; } else { throw new MultipartException("Could not parse multipart servlet request", orig); } } return super.isMultipart(request); }
HttpServletRequest httpServletRequest = null; if (request instanceof HttpServletRequest) { httpServletRequest = (HttpServletRequest) request; } CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(); if (commonsMultipartResolver.isMultipart(httpServletRequest)) { if (commonsMultipartResolver.isMultipart(null)) { try { MultipartHttpServletRequest multipartHttpServletRequest = commonsMultipartResolver.resolveMultipart(httpServletRequest); Enumeration<String> enumKey = multipartHttpServletRequest.getParameterNames(); while(enumKey.hasMoreElements()) { String key = enumKey.nextElement(); System.out.println("multipart " + key + ": " + multipartHttpServletRequest.getParameter(key)); } } catch (Exception ex) { System.out.println("Exception TEST: " + ex); } } }
/** * 上传临时素材 * * @return 素材的media_id列表,实际上如果有的话,只会有一个 */ @PostMapping("/upload") public List<String> uploadMedia(HttpServletRequest request) throws WxErrorException { CommonsMultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext()); if (!resolver.isMultipart(request)) { return Lists.newArrayList(); } MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; Iterator<String> it = multiRequest.getFileNames(); List<String> result = Lists.newArrayList(); while (it.hasNext()) { try { MultipartFile file = multiRequest.getFile(it.next()); File newFile = new File(Files.createTempDir(), file.getOriginalFilename()); this.logger.info("filePath is :" + newFile.toString()); file.transferTo(newFile); WxMediaUploadResult uploadResult = this.service.getMediaService().uploadMedia(WxMaConstants.KefuMsgType.IMAGE, newFile); this.logger.info("media_id : " + uploadResult.getMediaId()); result.add(uploadResult.getMediaId()); } catch (IOException e) { this.logger.error(e.getMessage(), e); } } return result; }
request.getSession().getServletContext()); List<String> fileNames = InstanceUtil.newArrayList(); if (multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; String pathDir = getUploadDir(request);
/** * 上传临时素材 * * @return 素材的media_id列表,实际上如果有的话,只会有一个 */ @PostMapping("/upload") public List<String> uploadMedia(@PathVariable String appid, HttpServletRequest request) throws WxErrorException { final WxMaService wxService = WxMaConfiguration.getMaService(appid); CommonsMultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext()); if (!resolver.isMultipart(request)) { return Lists.newArrayList(); } MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; Iterator<String> it = multiRequest.getFileNames(); List<String> result = Lists.newArrayList(); while (it.hasNext()) { try { MultipartFile file = multiRequest.getFile(it.next()); File newFile = new File(Files.createTempDir(), file.getOriginalFilename()); this.logger.info("filePath is :" + newFile.toString()); file.transferTo(newFile); WxMediaUploadResult uploadResult = wxService.getMediaService().uploadMedia(WxMaConstants.KefuMsgType.IMAGE, newFile); this.logger.info("media_id : " + uploadResult.getMediaId()); result.add(uploadResult.getMediaId()); } catch (IOException e) { this.logger.error(e.getMessage(), e); } } return result; }
request.getSession().getServletContext()); if (multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; Map<String, MultipartFile> fileMap = multiRequest.getFileMap();
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); if (multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; Iterator<String> iterator = multiRequest.getFileNames();
/** * 上传 * * @param request servlet容器中HttpServletRequest对象 * @return 上传对象列表 * @throws BaseSupportException */ public static List<UploadFile> upload(HttpServletRequest request) throws BaseSupportException { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); List<UploadFile> files = new ArrayList<UploadFile>(); if (multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; MultiValueMap<String, MultipartFile> multiValueMap = multiRequest.getMultiFileMap(); if (multiValueMap != null && multiValueMap.size() > 0) { for (Map.Entry<String, List<MultipartFile>> entry : multiValueMap.entrySet()) { List<MultipartFile> multipartFiles = entry.getValue(); if (multipartFiles != null && multipartFiles.size() > 0) { for (MultipartFile file : multipartFiles) files.add(new UploadFile(file)); } } } } else { throw new BaseSupportException("request is not multipart", ""); } return files; }
request.getSession().getServletContext()); List<String> fileNames = InstanceUtil.newArrayList(); if (multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; String pathDir = getUploadDir(request);