I have got a multipart form with some text fields and some upload files. I need to handle this multipart post request in vertx handler so that all the uploaded files (variable number) should be read in chunks (for memory effeciency purpose). The moment I read the chunks (in foreach loop), I want to stream that out directly to the file. For multipart with text fields, I want to simply store the values to my model object.
I am quite new to vertx and therefore looking for a code snippet to achieve this but couldnt find it anywhere on the vertx documentation.
You should look at vertx-web. It contains exactly what you need:
router.route().handler(BodyHandler.create());
router.post("/some/path/uploads").handler(routingContext -> {
MultiMap attributes = routingContext.request().formAttributes();
// do something with the form data
Set<FileUpload> uploads = routingContext.fileUploads();
// Do something with uploads....
});
Hope this will help.
You can process the text field and the files seperately. This could simplify your processing.
request.handler(buffer -> {
// decode the text field here
// ...
}).uploadHandler(upload -> {
// read upload files in chunks here
// ...
}).endHandler(v -> {
// upload request end here
// ...
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With