spring mvc 多文件上传 String 不能转换成 MultipartFile类型

Spring MVC多文件上传后端报错

出现问题场景

前端 input type=file 选择多个文件,form表单post提交到后端Controller接口,多个文件使用参数MultipartFile[] files接收,当 input type=file没有选择文件时,提交form表单,后端报错。

出现问题后端代码
public void save(Vo vo, @Requestparam(value="files", required=false) MultipartFile[] files) {
    // TODO ...
}

解决办法

将controller中的方法参数 MulTipartFile[] 改成 List<MultipartFile>,即可

public void save(Vo vo, @Requestparam(value="files", required=false) List<MultipartFile> files) {
    // TODO ...
}

错误信息

Caused by: java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.MultipartFile]: no matching editors or conversion strategy found
        at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:241)
        at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:110)
        at org.springframework.beans.TypeConverterDelegate.convertToTypedArray(TypeConverterDelegate.java:469)
        at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:175)
        at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:92)
        at org.springframework.beans.SimpleTypeConverter.convertIfNecessary(SimpleTypeConverter.java:49)
        ... 100 more

关联问题

开发中接口文件参数不使用 @Requestparam注解标注接收的文件参数可正常使用,但是打包部署之后确不能正常使用(后端报错)。所以需要在参数上使用@RequestParam

// 错误代码
public void save(Vo vo, MultipartFile file) {
    // TODO ...
}
// 可执行代码
public void save(Vo vo, @Requestparam(value="file", required=false) MultipartFile file) {
    // TODO ...
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值