一尘不染

将@RequestParam用于multipartfile是正确的方法吗?

spring

我正在开发一个Spring MVC应用程序,我想在控制器中处理多部分请求。在我MultiPartFile 也传递的请求中,当前我正在使用@RequestParam该文件来获取参数,该方法看起来像,

@RequestMapping(method = RequestMethod.POST)
public def save(
        @ModelAttribute @Valid Product product,
        @RequestParam(value = "image", required = false) MultipartFile file) {
    .....
}

上面的代码在我的服务中效果很好,并且文件在服务器端。现在我看到某处文件需要使用@RequestPart注释而不是@RequestParam@RequestParam文件使用有什么错误吗?还是将来可能导致任何类型的错误?


阅读 3368

收藏
2020-04-19

共1个答案

一尘不染

@RequestParamMultipart file一起使用没错。

@RequestParam批注还可用于将“ multipart / form-data”请求的一部分与支持相同方法参数类型的方法参数相关联。主要区别在于,当方法参数不是String时,@ RequestParam依赖于通过注册的Converter或PropertyEditor进行的类型转换,而@RequestPart依赖于HttpMessageConverters,并考虑了请求部分的“ Content-Type”标头。@RequestParam可能与名称-值表单字段一起使用,而@RequestPart可能与包含更复杂内容(例如JSON,XML)的部分一起使用。

2020-04-19