Mar*_* Ou 1 java spring spring-mvc spring-boot
根据春季的标准文件上传方式:https : //spring.io/guides/gs/uploading-files/ 我们将使用@RequestParam(“ file”)MultipartFile文件接收从表单上传的文件。
但是我不知道为什么注释是“ RequestParam”而不是“ RequestBody”之类的,因为在表单中我们指定了“ method = post”,所以数据不应该在表单主体内吗?
非常感谢!
要进入MultipartFile春季,我们可以使用@RequestPart或@RequestParam。这些注释用于关联multipart/form-data请求的一部分。这是在spring docs中编写的:
公共@interface RequestPart
可用于将“ multipart / form-data”请求的一部分与方法参数关联的注释。支持的方法参数类型包括MultipartFile和Spring的MultipartResolver抽象,javax.servlet.http.Part和Servlet 3.0多部分请求结合,或者对于其他任何方法参数,该部分的内容都通过HttpMessageConverter传递,并考虑到请求部分的“内容类型”标头。这类似于@RequestBody基于非分段常规请求的内容来解析参数的操作。
请注意,@ RequestParam批注还可用于将“ multipart / form-data”请求的一部分与支持相同方法参数类型的方法参数相关联。
主要区别在于,当方法参数不是String时,@ RequestParam依赖于通过注册的Converter或PropertyEditor进行的类型转换,而@RequestPart依赖于HttpMessageConverters,同时考虑了请求部分的“ Content-Type”标头。@RequestParam可能与名称-值表单字段一起使用,而@RequestPart可能与包含更复杂内容(例如JSON,XML)的部分一起使用。
链接:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestPart.html
| 归档时间: |
|
| 查看次数: |
3674 次 |
| 最近记录: |