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

Spring webflux-文件上传不起作用,当我从邮递员那里击中它时,它会抛出错误

封鸿雪
2023-03-14

嗨,我有一个spring webflux应用程序。我想要一个API上传一个文件。我使用MultipartFile遵循Spring Webflux 415中的指令

写了这样的东西

@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public Mono<Void> save(@RequestPart("file") Mono<FilePart> file) {
        log.info("Storing a new file. Recieved by Controller");
        this.storageService.store(file);
        return Mono.empty();
    }

但我仍然无法测试这一点,它失败了与以下错误在邮递员和swagger doesnt生成文件浏览按钮为这个API。

org.springframework.web.server.UnsupportedMediaTypeStatusException: Response status 415 with reason "Content type 'image/png' not supported"
at org.springframework.web.reactive.result.method.annotation.AbstractMessageReaderArgumentResolver.readBody(AbstractMessageReaderArgumentResolver.java:206) ~[spring-webflux-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.web.reactive.result.method.annotation.AbstractMessageReaderArgumentResolver.readBody(AbstractMessageReaderArgumentResolver.java:124) ~[spring-webflux-5.0.4.RELEASE.jar:5.0.4.RELEASE]

共有1个答案

百里飞捷
2023-03-14

您可以尝试将内容类型设置为postman中的multipart/form-data吗?当发送以下请求时,上层配置为我工作

    POST /rest/upload HTTP/1.1
    Host: localhost:8083
    Content: multipart/form-data
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

     ----WebKitFormBoundary7MA4YWxkTrZu0gW
     Content-Disposition: form-data; name="file"; filename="image.png"
     Content-Type: image/png

     (data)
     ----WebKitFormBoundary7MA4YWxkTrZu0gW

或卷曲:

curl --location --request POST 'http://localhost:8083/rest/upload' \
--header 'Content: multipart/form-data' \
--header 'Content-Type: multipart/form-data; boundary=--------------------------947246331766984894381774' \
--form 'file=@/Users/user/Documents/image.png'
 类似资料:
  • 我正在使用imgurapi通过nodejs应用程序上传图像。 我正在将图像转换为bas64字符串,并通过邮递员发送它们。 我使用进行api调用。 错误:在“”处获取的访问权限https://api.imgur.com/3/image“起源”http://localhost:3000'已被CORS策略阻止:飞行前响应中的访问控制允许标头不允许请求标头字段访问控制允许标头。 我尝试了许多访问控制允许x

  • 我想上传一个图像文件。当我调用我的API上传文件使用postman,得到的错误,如. 我无法将此文件发布到我的Laravel控制器。如何在Laravel中发布文件。有人能帮我解决这个问题吗? 这是我的控制器功能, 在这一行

  • 在index.hpp中,我创建了一个具有多个数据成员的类,如、等。我在类外部定义了一个构造函数。在program.cpp中,我创建了一个名为SAM的对象。当我试图编译它时,它显示错误。什么原因? Program.cpp index.hpp 错误信息

  • 我通过邮递员将参数发送到api网关并收到结果。所以我在lambda中尝试了一个简单的例子, 当我发送Idx时,它会回调两倍。 我在身体中选择原始,这样我就可以收到结果 但是,我将“Content Type”:“application/x-www-form-urlencoded”放在Headers部分,选择x-www-form-urlencoded,它返回这个。 我想收到邮递员通过x-www. fo

  • 这是我的主要html文件; 这里是ajaxshow.js; 这里是PHP文件; 当我用静态超文本标记语言加载图像时(注释掉),它工作正常。当我运行上面的代码时,它会加载目录中的第一个图像,但它不可拖动或调整大小。当我从PHP文件的回声部分取出类ID时。它可以加载图像,但当然它们是不可拖动或调整大小的。有人能帮忙吗。非常感谢。尼尔。

  • 我试图在我的项目中实现这段代码,但不起作用RecycerView:如何捕捉ImageView上的onClick?: 我实现了一个接口来处理RecycerView中的onclick imageview和onclick row。问题是,当我试图在imageview上或在行中单击时,不会发生任何事情。如果我在我的ViewHolder类中尝试同样的方法,效果会很好,因为我可以看到祝酒词。问题是我需要这个工