繁体   English   中英

使用RequestParam上传Spring文件

[英]Spring File Upload with RequestParam

根据春季的标准文件上传方式: 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM