【问题标题】:Java Vertx extract Files from multipart form dataJava Vertx 从多部分表单数据中提取文件
【发布时间】:2020-10-28 22:27:59
【问题描述】:

假设我有

Router router = Router.router(vertx);
router.route().handler(BodyHandler.create());
router.post("/").handler(ctx ->{
    //body..
}

我知道Set<FileUpload> set = ctx.fileUploads(); 会给我一组我的文件。我遇到的问题是我实际上并没有得到文件——也就是说,如果sFileUpload 类似InputStream f = s.getAsInputStream() 的东西不存在。在其他框架中,这是一个选项。有没有办法将文件作为输入流?

【问题讨论】:

  • 您能否提供一个来自另一个框架的示例,以便更容易理解您在寻找什么?

标签: java inputstream vert.x


【解决方案1】:

过去我使用两步方法来访问文件内容:

  1. 使用FileUpload.uploadedFileName() 获取已上传的本地存储文件的路径。
  2. 使用FileSystem.readFile(String path) 的一些变体,生成Buffer 类型,其中包含对原始字节的引用。

Rx-ified 版本看起来像这样:

FileSystem fileSystem = ctx.vertx().fileSystem();

Router router = Router.router(vertx);
router.route().handler(BodyHandler.create());
router.post("/").handler(ctx -> {
  ctx.fileUploads()
    .map({ fileUpload ->
      return fileSystem.rxReadFile(fileUpload.uploadedFileName())
          .map({ buffer ->
            return buffer.bytes;  // <-- here's the binary content
          });
    })

【讨论】:

    猜你喜欢
    • 2022-01-07
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2013-03-06
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多