Cześć,
uploaduję sobie plik takim kodem:
@Configuration
public class ApplicationRoute {
private static final Logger log = LoggerFactory.getLogger(ApplicationRoute.class);
@Bean
RouterFunction<ServerResponse> appRoutes() {
return nest(path("/api"),
route(POST("/fileupload"), fileUpload()));
}
private HandlerFunction<ServerResponse> fileUpload() {
return request -> {
// print content length
System.out.println(request.headers().contentLength().getAsLong());
return request.body(BodyExtractors.toMultipartData()).flatMap(parts -> {
Map<String, Part> map = parts.toSingleValueMap();
final FilePart filePart = (FilePart) map.get("file");
final String dir = "C:\\JDeveloper\\mywork\\Spring\\SpringTest\\webflux-file-upload\\uploaded";
filePart.transferTo(new File(dir + "/" + filePart.filename()));
return ServerResponse.ok().body(fromObject("ok, file uploaded"));
}
);
};
}
}
i potrzebuję nałożyć limit na wielkość uploadowanego pliku, oczywiście zanim go pobiorę. Jak to zrobić?
Jedyne co udało mi się wykminić to sprawdzanie headera Content-Length, ale to nie jest bezpieczne rozwiązanie. Miał ktoś już taki problem?