@Override public String getName() { return this.part.getName(); }
public void addPart(Part part) { this.parts.add(part.getName(), part); }
/** * Add {@link Part} components to the request. * @param parts one or more parts to add * @since 5.0 */ public MockMultipartHttpServletRequestBuilder part(Part... parts) { Assert.notEmpty(parts, "'parts' must not be empty"); for (Part part : parts) { this.parts.add(part.getName(), part); } return this; }
@Override public String getName() { return this.part.getName(); }
private static List<Part> resolvePartList(HttpServletRequest request, String name) throws Exception { Collection<Part> parts = request.getParts(); List<Part> result = new ArrayList<>(parts.size()); for (Part part : parts) { if (part.getName().equals(name)) { result.add(part); } } return result; }
public void addPart(Part part) { this.parts.add(part.getName(), part); }
private static List<Part> resolvePartList(HttpServletRequest request, String name) throws Exception { Collection<Part> parts = request.getParts(); List<Part> result = new ArrayList<>(parts.size()); for (Part part : parts) { if (part.getName().equals(name)) { result.add(part); } } return result; }
@Override public void cleanupMultipart(MultipartHttpServletRequest request) { if (!(request instanceof AbstractMultipartHttpServletRequest) || ((AbstractMultipartHttpServletRequest) request).isResolved()) { // To be on the safe side: explicitly delete the parts, // but only actual file parts (for Resin compatibility) try { for (Part part : request.getParts()) { if (request.getFile(part.getName()) != null) { part.delete(); } } } catch (Throwable ex) { LogFactory.getLog(getClass()).warn("Failed to perform cleanup of multipart items", ex); } } }
private void parseRequest(HttpServletRequest request) { try { Collection<Part> parts = request.getParts(); this.multipartParameterNames = new LinkedHashSet<>(parts.size()); MultiValueMap<String, MultipartFile> files = new LinkedMultiValueMap<>(parts.size()); for (Part part : parts) { String headerValue = part.getHeader(HttpHeaders.CONTENT_DISPOSITION); ContentDisposition disposition = ContentDisposition.parse(headerValue); String filename = disposition.getFilename(); if (filename != null) { if (filename.startsWith("=?") && filename.endsWith("?=")) { filename = MimeDelegate.decode(filename); } files.add(part.getName(), new StandardMultipartFile(part, filename)); } else { this.multipartParameterNames.add(part.getName()); } } setMultipartFiles(files); } catch (Throwable ex) { handleParseFailure(ex); } }
@Override public List<NativeUpload> files(final String name) throws IOException { try { if (multipart) { return req.getParts().stream() .filter(part -> part.getSubmittedFileName() != null && part.getName().equals(name)) .map(part -> new ServletUpload(part, tmpdir)) .collect(Collectors.toList()); } return Collections.emptyList(); } catch (ServletException ex) { throw new IOException("File not found: " + name, ex); } }
private void bindParts(HttpServletRequest request, MutablePropertyValues mpvs) { try { MultiValueMap<String, Part> map = new LinkedMultiValueMap<>(); for (Part part : request.getParts()) { map.add(part.getName(), part); } map.forEach((key, values) -> { if (values.size() == 1) { Part part = values.get(0); if (isBindEmptyMultipartFiles() || part.getSize() > 0) { mpvs.add(key, part); } } else { mpvs.add(key, values); } }); } catch (Exception ex) { throw new MultipartException("Failed to get request parts", ex); } }
@Override public void cleanupMultipart(MultipartHttpServletRequest request) { if (!(request instanceof AbstractMultipartHttpServletRequest) || ((AbstractMultipartHttpServletRequest) request).isResolved()) { // To be on the safe side: explicitly delete the parts, // but only actual file parts (for Resin compatibility) try { for (Part part : request.getParts()) { if (request.getFile(part.getName()) != null) { part.delete(); } } } catch (Throwable ex) { LogFactory.getLog(getClass()).warn("Failed to perform cleanup of multipart items", ex); } } }
LinkedMultiValueMap<String, Part> result = new LinkedMultiValueMap<>(parts.size()); for (Part part : parts) { result.add(part.getName(), part); LinkedHashMap<String, Part> result = new LinkedHashMap<>(parts.size()); for (Part part : parts) { if (!result.containsKey(part.getName())) { result.put(part.getName(), part);
private void parseRequest(HttpServletRequest request) { try { Collection<Part> parts = request.getParts(); this.multipartParameterNames = new LinkedHashSet<>(parts.size()); MultiValueMap<String, MultipartFile> files = new LinkedMultiValueMap<>(parts.size()); for (Part part : parts) { String headerValue = part.getHeader(HttpHeaders.CONTENT_DISPOSITION); ContentDisposition disposition = ContentDisposition.parse(headerValue); String filename = disposition.getFilename(); if (filename != null) { if (filename.startsWith("=?") && filename.endsWith("?=")) { filename = MimeDelegate.decode(filename); } files.add(part.getName(), new StandardMultipartFile(part, filename)); } else { this.multipartParameterNames.add(part.getName()); } } setMultipartFiles(files); } catch (Throwable ex) { handleParseFailure(ex); } }
private void bindParts(HttpServletRequest request, MutablePropertyValues mpvs) { try { MultiValueMap<String, Part> map = new LinkedMultiValueMap<>(); for (Part part : request.getParts()) { map.add(part.getName(), part); } map.forEach((key, values) -> { if (values.size() == 1) { Part part = values.get(0); if (isBindEmptyMultipartFiles() || part.getSize() > 0) { mpvs.add(key, part); } } else { mpvs.add(key, values); } }); } catch (Exception ex) { throw new MultipartException("Failed to get request parts", ex); } }
protected Map<String, String> copyFileName(HttpServletRequest req) { Map<String, String> parts = new HashMap<>(); if (req.getContentType() == null) { return parts; } if (req.getContentType() != null && !req.getContentType().toLowerCase().contains("multipart/form-data")) { return parts; } try { Collection<Part> prs = req.getParts(); for (Part p : prs) { if (p instanceof ApplicationPart) { ApplicationPart ap = (ApplicationPart) p; parts.put(p.getName(), ap.getSubmittedFileName()); } } } catch (IOException | ServletException e) { e.printStackTrace(); } return parts; }
protected Map<String, String> copyParts(HttpServletRequest req) { Map<String, String> parts = new HashMap<>(); if (req.getContentType() == null) { return parts; } if (req.getContentType() != null && !req.getContentType().toLowerCase().contains("multipart/form-data")) { return parts; } String enc = "UTF-8"; try { Collection<Part> prs = req.getParts(); for (Part p : prs) { parts.put(p.getName(), new String(StreamUtil.readBytes(p.getInputStream()), enc)); } } catch (IOException | ServletException e) { e.printStackTrace(); } return parts; }
if (!"files[]".equals(ul.getName())) { continue;
private FlowFile savePartDetailsAsAttributes(final ProcessSession session, final Part part, final FlowFile flowFile, final int sequenceNumber, final int allPartsCount) { final Map<String, String> attributes = new HashMap<>(); for (String headerName : part.getHeaderNames()) { final String headerValue = part.getHeader(headerName); putAttribute(attributes, "http.headers.multipart." + headerName, headerValue); } putAttribute(attributes, "http.multipart.size", part.getSize()); putAttribute(attributes, "http.multipart.content.type", part.getContentType()); putAttribute(attributes, "http.multipart.name", part.getName()); putAttribute(attributes, "http.multipart.filename", part.getSubmittedFileName()); putAttribute(attributes, "http.multipart.fragments.sequence.number", sequenceNumber + 1); putAttribute(attributes, "http.multipart.fragments.total.number", allPartsCount); return session.putAllAttributes(flowFile, attributes); }
private FlowFile savePartAttributes(ProcessContext context, ProcessSession session, Part part, FlowFile flowFile, final int i, final int allPartsCount) { final Map<String, String> attributes = new HashMap<>(); for (String headerName : part.getHeaderNames()) { final String headerValue = part.getHeader(headerName); putAttribute(attributes, "http.headers.multipart." + headerName, headerValue); } putAttribute(attributes, "http.multipart.size", part.getSize()); putAttribute(attributes, "http.multipart.content.type", part.getContentType()); putAttribute(attributes, "http.multipart.name", part.getName()); putAttribute(attributes, "http.multipart.filename", part.getSubmittedFileName()); putAttribute(attributes, "http.multipart.fragments.sequence.number", i+1); putAttribute(attributes, "http.multipart.fragments.total.number", allPartsCount); return session.putAllAttributes(flowFile, attributes); }