Search code examples
javamultipartform-datamultipartvertx3vert.x

Handling multipart form in Vertx


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.


Solution

  • 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.