基本上,我在Spring Boot中向控制器发送两个参数,一个是String,另一个是文件。在操作中,当我首先收到文件然后接收字符串时,就像这样
@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 )
一切都很好,我能够正确访问String和文件。
但是当我改变参数的顺序时,就像这样
@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 )
我研究了很多,但我无法理解这种行为。
答案 0 :(得分:0)
因为您将身份keyId
发送到@RequestParam
,因为它被声明为@RequestParam
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html。
@RequestPart
无需处理请求正文,它已在请求网址中传递。
您的示例如何,第一种方法可行,因为您的方法需要一个python manage.py runserver --noreload
,其他方法将被忽略。