如何在vertx中创建多部分表单发布请求处理程序

时间:2017-04-11 14:02:01

标签: java post httprequest multipartform-data vert.x

您好我在独立应用程序的java中使用vertx来读取我的Web应用程序中的端口。我想从表单中获取发布数据。 我的网络应用程序有一个表单,其中包含我希望阅读的post方法。 我的逻辑是

  1. 创建Verticle

  2. 创建http服务器

  3. 创建处理程序请求(它不会占用我的所有参数) 代码)

  4. 收听httpServer
  5. 期待处理程序中的多部分请求
  6. Multimap并获取表单属性
  7. 我不知道我错过了什么,我是vertx的新手。

    出于某种原因,我不能在这里发布代码。

    我的代码: https://pastebin.com/A1hjXFb6

1 个答案:

答案 0 :(得分:0)

确保您的HTML表单具有enctype="multipart/form-data"属性。

然后在你的vertx代码中:

public class loginLogic extends AbstractVerticle {

    //Vertx vertx;
    private HttpServer httpServer = null;

    @Override
        public void start() {
            Router router = Router.router(vertx);
            router.route().handler(BodyHandler.create().setUploadsDirectory("uploads"));
            router.post("/form").handler(ctx -> {
                  ctx.response().putHeader("Content-Type", "text/plain");
                  ctx.response().setChunked(true);
                  for (FileUpload f : ctx.fileUploads()) {
                    System.out.println("f");
                    ctx.response().write("Filename: " + f.fileName());
                    ctx.response().write("\n");
                    ctx.response().write("Size: " + f.size());
                  }

                  ctx.response().end();
            });
            vertx.createHttpServer().requestHandler(router::accept).listen(8080);
    }
}