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

Multipartfile参数顺序优先导致错误

谷森
2023-03-14

基本上,我在Spring Boot中向控制器发送两个参数,一个是字符串,另一个是文件。在操作中,当我首先接收文件,然后接收字符串时,如下所示

@RequestMapping(value = "/updatemedia", method = RequestMethod.PATCH,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<String> updateMedia(@RequestParam(value ="file") MultipartFile fileToUpload , @RequestParam(value = "keyId") String keyId )

一切都很好,我能够正确地访问字符串和文件。

但是当我改变参数的顺序时,就像这样

@RequestMapping(value = "/updatemedia", method = RequestMethod.PATCH,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<String> updateMedia( @RequestParam(value = "keyId") String keyId , @RequestParam(value ="file") MultipartFile fileToUpload )

我研究了很多,但不能理解这种行为。

共有1个答案

郭修平
2023-03-14

因为您在主体中发送keyid,同时将其声明为@requestparamhttps://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/requestparam.html。@requestparam没有处理请求正文的内容,它是在请求URL中传递的。在您的示例中,第一种方法是有效的,因为您的方法需要一个@requestpart,而忽略其他方法。

 类似资料:
  • 问题内容: 我试图弄清楚为什么我的一个css类似乎覆盖了另一个(而不是相反) 这里我有两个CSS类 在我看来,我打电话给 字体(重叠元素)显示为10px而不是20px-有人可以解释为什么会这样吗? 问题答案: 有几条规则(按此顺序应用): 内联css(html样式属性)覆盖样式标签和css文件中的css规则 较具体的选择器优先于较不具体的选择器 如果两个规则具有相同的特异性,则稍后出现在代码中的规

  • 所以我的问题是: 总是设置优先级的setter注入,还是有某个属性定义它。 为什么Setter注入优先于构造函数注入

  • 优先级队列未维护排序顺序我是否未正确执行?输出时出现错误的排序顺序? 产出:[1, 5, 8, 19, 9]

  • 问题内容: 在Java中,多维数组是以列优先还是行优先的顺序存储的? 问题答案: Java没有多维数组。它具有数组的数组。例如 …是(当然是)的数组。 因此,Java既不是列优先顺序也不是行优先顺序(但请参见下面的有关如何读取的注意事项),因为给定数组的条目存储在连续的内存块中,而这些条目所指向的从属数组是对象的引用。完全独立的,无关的内存块。这也意味着Java的数组数组固有地呈 锯齿状 :处的条

  • 问题内容: 我想了解express.js中的顺序优先级。例如,下面的代码 如果请求来自客户端localhost:3000 / api / abc和localhost:3000 / user / abc,则来自api和用户模块的响应。但是,如果我发出类似localhost:3000 / myName / xyz的请求,则应用程序模块将返回响应。此行为使我担心expressjs的优先顺序以及路由器模块

  • 我试图限制用户使用我的桶策略访问我的桶。我有一组用户,他们都有一个S3FullAccess策略。我不能改变IAM中的任何东西。我只能使用我的遗愿保单。所以我想使用桶策略控制用户的访问。我把用户分成3类。 管理员访问我的桶(所有访问我的桶) 访问我的桶的权限有限的用户(如get-buk-策略,get-buk-位置) 无法访问我的桶。(无法访问我的桶) 下面的策略是我尝试过的,但不起作用。 我尝试了上