@Override public Mono<MultiValueMap<String, Part>> multipartData() { return this.exchange.getMultipartData(); }
@Override public Mono<MultiValueMap<String, Part>> multipartData() { return this.exchange.getMultipartData(); }
@Override public Mono<MultiValueMap<String, Part>> getMultipartData() { return getDelegate().getMultipartData(); }
@Override public Mono<MultiValueMap<String, Part>> getMultipartData() { return getDelegate().getMultipartData(); }
/** * Combine query params and form data for multipart form data from the body * of the request into a {@code Map<String, Object>} of values to use for * data binding purposes. * @param exchange the current exchange * @return a {@code Mono} with the values to bind * @see org.springframework.http.server.reactive.ServerHttpRequest#getQueryParams() * @see ServerWebExchange#getFormData() * @see ServerWebExchange#getMultipartData() */ public static Mono<Map<String, Object>> extractValuesToBind(ServerWebExchange exchange) { MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams(); Mono<MultiValueMap<String, String>> formData = exchange.getFormData(); Mono<MultiValueMap<String, Part>> multipartData = exchange.getMultipartData(); return Mono.zip(Mono.just(queryParams), formData, multipartData) .map(tuple -> { Map<String, Object> result = new TreeMap<>(); tuple.getT1().forEach((key, values) -> addBindValue(result, key, values)); tuple.getT2().forEach((key, values) -> addBindValue(result, key, values)); tuple.getT3().forEach((key, values) -> addBindValue(result, key, values)); return result; }); }
String name = getPartName(parameter, requestPart); Flux<Part> parts = exchange.getMultipartData() .flatMapMany(map -> { List<Part> list = map.get(name);
/** * Combine query params and form data for multipart form data from the body * of the request into a {@code Map<String, Object>} of values to use for * data binding purposes. * @param exchange the current exchange * @return a {@code Mono} with the values to bind * @see org.springframework.http.server.reactive.ServerHttpRequest#getQueryParams() * @see ServerWebExchange#getFormData() * @see ServerWebExchange#getMultipartData() */ public static Mono<Map<String, Object>> extractValuesToBind(ServerWebExchange exchange) { MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams(); Mono<MultiValueMap<String, String>> formData = exchange.getFormData(); Mono<MultiValueMap<String, Part>> multipartData = exchange.getMultipartData(); return Mono.zip(Mono.just(queryParams), formData, multipartData) .map(tuple -> { Map<String, Object> result = new TreeMap<>(); tuple.getT1().forEach((key, values) -> addBindValue(result, key, values)); tuple.getT2().forEach((key, values) -> addBindValue(result, key, values)); tuple.getT3().forEach((key, values) -> addBindValue(result, key, values)); return result; }); }
private Mono<Void> assertGetFormParts(ServerWebExchange exchange) { return exchange .getMultipartData() .doOnNext(parts -> { assertEquals(2, parts.size()); assertTrue(parts.containsKey("fooPart")); assertFooPart(parts.getFirst("fooPart")); assertTrue(parts.containsKey("barPart")); assertBarPart(parts.getFirst("barPart")); }) .then(); }
private Mono<?> extractReadableRequestBody(ServerWebExchange exchange) { MediaType contentType = exchange.getRequest() .getHeaders() .getContentType(); if (contentType == null) { contentType = MediaType.APPLICATION_OCTET_STREAM; } if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(contentType)) { return exchange.getFormData(); } else if (MediaType.MULTIPART_FORM_DATA.isCompatibleWith(contentType)) { return exchange.getMultipartData(); } else { return readRequestBody(exchange, contentType); } }
@Override public Mono<MultiValueMap<String, Part>> getMultipartData() { return getDelegate().getMultipartData(); }
@Override public Mono<MultiValueMap<String, Part>> getMultipartData() { return getDelegate().getMultipartData(); }
@PostMapping(path = "/**", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ResponseBody public Mono<ResponseEntity<?>> multipart(ServerWebExchange request) { FunctionWrapper wrapper = wrapper(request); return request.getMultipartData() .doOnSuccess(params -> wrapper.params(multi(params))) .then(Mono.defer(() -> processor.post(wrapper, null, false))); }
@PostMapping(path = "/**", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ResponseBody public Mono<ResponseEntity<?>> multipart(ServerWebExchange request) { FunctionWrapper wrapper = wrapper(request); return request.getMultipartData() .doOnSuccess(params -> wrapper.params(multi(params))) .then(Mono.defer(() -> processor.post(wrapper, null, false))); }
/** * Combine query params and form data for multipart form data from the body * of the request into a {@code Map<String, Object>} of values to use for * data binding purposes. * @param exchange the current exchange * @return a {@code Mono} with the values to bind * @see org.springframework.http.server.reactive.ServerHttpRequest#getQueryParams() * @see ServerWebExchange#getFormData() * @see ServerWebExchange#getMultipartData() */ public static Mono<Map<String, Object>> extractValuesToBind(ServerWebExchange exchange) { MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams(); Mono<MultiValueMap<String, String>> formData = exchange.getFormData(); Mono<MultiValueMap<String, Part>> multipartData = exchange.getMultipartData(); return Mono.zip(Mono.just(queryParams), formData, multipartData) .map(tuple -> { Map<String, Object> result = new TreeMap<>(); tuple.getT1().forEach((key, values) -> addBindValue(result, key, values)); tuple.getT2().forEach((key, values) -> addBindValue(result, key, values)); tuple.getT3().forEach((key, values) -> addBindValue(result, key, values)); return result; }); }
/** * Combine query params and form data for multipart form data from the body * of the request into a {@code Map<String, Object>} of values to use for * data binding purposes. * @param exchange the current exchange * @return a {@code Mono} with the values to bind * @see org.springframework.http.server.reactive.ServerHttpRequest#getQueryParams() * @see ServerWebExchange#getFormData() * @see ServerWebExchange#getMultipartData() */ public static Mono<Map<String, Object>> extractValuesToBind(ServerWebExchange exchange) { MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams(); Mono<MultiValueMap<String, String>> formData = exchange.getFormData(); Mono<MultiValueMap<String, Part>> multipartData = exchange.getMultipartData(); return Mono.zip(Mono.just(queryParams), formData, multipartData) .map(tuple -> { Map<String, Object> result = new TreeMap<>(); tuple.getT1().forEach((key, values) -> addBindValue(result, key, values)); tuple.getT2().forEach((key, values) -> addBindValue(result, key, values)); tuple.getT3().forEach((key, values) -> addBindValue(result, key, values)); return result; }); }