2017-04-11 63 views
0

您好我正在獨立應用程序中使用java中的vertx來讀取我的web應用程序中的端口。我想從表單中獲取發佈數據。 我的網絡應用程序有一個我正在閱讀的post方法。 我的邏輯是如何在vertx中創建多部分表單發佈請求處理程序

  1. 創建verticle

  2. 創建HTTP服務器

  3. 創建處理請求(它沒有考慮所有的參數在我 代碼)

  4. 聽HttpServer的
  5. 預期處理程序中的多部分請求
  6. Multimap並獲取表單屬性

我不知道我在想什麼,我是vertx的新手。

由於某種原因,我無法在此處發佈代碼。

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

回答

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); 
    } 
} 
+0

哪個圖書館做我需要實現路由器路由器= Router.router(vertx); –

+0

我需要啓用上傳嗎? 我只需要從表單中獲取發佈數據 –

+0

路由器是vertex'io.vertx.ext.web.Router'的一部分。你不需要啓用任何東西,只需設置上傳路徑即可。 –

相關問題