zoukankan      html  css  js  c++  java
  • Vertx上传 官网Demo Java版

    package io.vertx.example.web.upload;
    
    import io.vertx.core.AbstractVerticle;
    import io.vertx.example.util.Runner;
    import io.vertx.ext.web.FileUpload;
    import io.vertx.ext.web.Router;
    import io.vertx.ext.web.handler.BodyHandler;
    
    /*
     * @author <a href="http://tfox.org">Tim Fox</a>
     */
    public class Server extends AbstractVerticle {
    
      // Convenience method so you can run it in your IDE
      public static void main(String[] args) {
        Runner.runExample(Server.class);
      }
    
      @Override
      public void start() throws Exception {
    
        Router router = Router.router(vertx);
    
        // Enable multipart form data parsing
        router.route().handler(BodyHandler.create().setUploadsDirectory(System.getProperty("java.io.tmpdir")));
    
        router.route("/").handler(routingContext -> {
          routingContext.response().putHeader("content-type", "text/html").end(
            "<form action="/form" method="post" enctype="multipart/form-data">n" +
              "    <div>n" +
              "        <label for="name">Select a file:</label>n" +
              "        <input type="file" name="file" />n" +
              "    </div>n" +
              "    <div class="button">n" +
              "        <button type="submit">Send</button>n" +
              "    </div>" +
              "</form>"
          );
        });
    
        // handle the form
        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);
      }
    }


    您可以使用vertx-web轻松处理文件上传:

    router.route().handler(BodyHandler.create());
    
    router.post("/some/path/uploads").handler(routingContext -> {
    
        Set<FileUpload> uploads = routingContext.fileUploads();
        // Do something with uploads....
    });

    而且,您将利用路由功能,甚至可以提供诸如index.html之类的静态文件

  • 相关阅读:
    docker部署遇到的问题集合【持续更新】
    docker开发常用命令
    idea使用三步曲
    防缓存穿透设计
    亿级数据库分片分库架构设计亿【转】
    java-web项目换装servlet3.1.0后性能飙升到10000tps
    spring-kafka消费者配置
    分布式disconf+spring5使用遇到重复加载的问题
    jmeter性能压测
    springboot多profile环境maven配置
  • 原文地址:https://www.cnblogs.com/endv/p/12077295.html
Copyright © 2011-2022 走看看