今天用RMS写减轻茶后台上传文件,发现不能上传,前面一直使用JFinal上传,找了半天一直报错,最后才发现是SpringMVC上传问题。做个记录。
前端页面
一般正常页面需要文件上传需要添加enctype="multipart/form-data">
<form id="banner_save_dialog_form" method="post" enctype="multipart/form-data"> </form>
但是RMS封装了方法,除非重写不能直接添加,所以使用下面的方式。
$('#banner_save_dialog_form').attr("enctype", "multipart/form-data");
SpringMVC配置
必须要加以下文件才可以上传,注意上传文件的大小限制。
<!--文件上传--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="10485760"/> <property name="maxUploadSizePerFile" value="10485760"></property> <property name="maxInMemorySize" value="1024"/> <property name="defaultEncoding" value="UTF-8"/> </bean>
后台接收
注意@RequestParam("file") MultipartFile file。接下来只有用file.getInputStream()得到流上传OSS即可
- 如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且可以无需显式指定@RequestParam注解
- 如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解
@RequestMapping("/save") @ResponseBody public ReturnMsg saveBanner(@RequestParam("file") MultipartFile file,@RequestParam Banner banner) { boolean result = bannerService.saveBanner(file, banner); return result ? new ReturnMsg(ApiResponse.SUCCESS) : new ReturnMsg(ApiResponse.FAIL); }
参考链接: http://blog.csdn.net/jadyer/article/details/7575934