当前位置: 首页 > 知识库问答 >
问题:

如何使用reactor netty(没有Spring)接收多部分文件上传?

姜玮
2023-03-14

我已经看到有关于如何使用多部分形式(https://github.com/reactor/reactor-netty/blob/89796a1839a1439a1800424e130515357a827392/src/test/java/reactor/netty/http/client/HttpClientTest.java#L337)发布文件的反应器网的例子

但是我找不到任何关于如何使用report-netty编写可以解析多部分信息的服务器的信息。

看起来netty可以使用HttpPostRequest estDecoder类来做到这一点,但我看不到它适合哪里...

我还看到了InterfaceHttpData是属性和文件上传的母类,但我不知道从哪里可以从请求中获得这些对象。。。

有人这样做过吗?有线索吗?

谢谢

共有1个答案

司寇正志
2023-03-14
request.receive()
  .aggregate()
  .flatMap(byteBuf -> {
    FullHttpRequest dhr = new DefaultFullHttpRequest(request.version(), request.method(), request.uri(), byteBuf, request.requestHeaders(), EmptyHttpHeaders.INSTANCE);
    HttpPostRequestDecoder postDecoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(false), dhr, CharsetUtil.UTF_8);
    // loop data
    for (InterfaceHttpData data : postDecoder.getBodyHttpDatas()) {
        // attribute
        if (data.getHttpDataType() == InterfaceHttpData.HttpDataType.Attribute) {
            // (MemoryAttribute) data
        }
        // upload
        else if (data.getHttpDataType() == InterfaceHttpData.HttpDataType.FileUpload) {
            // (MemoryFileUpload) data
        }
    }
    postDecoder.destroy();
    dhr.release();
  });
 类似资料:
  • 我正在尝试使用angularjs和spring MVC上传一个文件 在application-context.xml中有一个multipartResolver bean。 我表单如下所示:

  • 我正在尝试编写一个SpringMVC方法,它可以接收多部分/表单或传输编码的分块文件上传。我可以编写一个单独的方法来处理每种类型,但我希望使用相同的方法,以便使用相同的REST POST uri,例如: 以下是我迄今为止最好的尝试: 使用上述方法,我可以上传一个多部分文件,但如果我上传一个分块文件,我会从spring得到一个异常,它说: 如果我删除MultipartFile请求参数,它非常适合分块

  • 我想通过调用rest web服务上传文件。此web服务需要MultipartFile。 我在这里读到我可以做到这一点:使用Spring Rest模板Spring Web MVC上传多部分文件 这是我的代码: 杰克逊尝试以JSON形式序列化该文件,但它失败了,并出现以下错误: 如何禁用文件的json序列化?

  • Im使用Spring Boot,并希望使用控制器接收多部分文件上传。当发送文件时,我一直得到错误415不支持的内容类型响应,并且控制器从未到达 我尝试在HTML/JSP页面和使用RESTTemplate的独立客户端应用程序中使用Form:Action发送。所有尝试的结果都是一样的 从multipart文档看来,边界参数必须添加到multipart上载,但这似乎与控制器接收不匹配 我的控制器方法设置

  • 关于Spring MVC应用程序中的多部分文件上传问题,我已经看到了很多关于stackoverflow的答案。我一步一步地确保我不会重复别人犯过的错误。 这是我的表格 在pom文件中我有依赖项 因此,当我停在调试器中时,request对象显示文件已被接收,甚至存储在jBoss临时文件夹中,我并不感到惊讶。 你能指出Spring看不到上传的文件我会错过什么吗?

  • 我正在尝试使用RestTemplate上传一个文件,代码如下。 我得到以下例外情况