SpringMVC实现文件上传

在Web应用中,用户来上传内容是很常见的需求。

配置multipart解析器
DispatcherServlet没有实现解析multipart请求数据的功能。它将任务委托给MultipartResolver接口的实现,通过实现类来解析multipart请求中的内容。
Spring3.1开始,Spring内置了两个MultipartResolver的实现

CommonsMultipartResolver:使用Commons FileUpload解析multipart
StandardServletMultipartResolver:依赖于Servlet3.0对multipart请求的支持

环境准备,使用CommonsMultipartResolver实现类需要导入jar包
这里写图片描述
在springmvc.xml配置CommonsMultipartResolver解析器


<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    
    <property name="defaultEncoding" value="UTF-8">property>
    
    <property name="maxUploadSize" value="5242880">property>
bean>

前台上传页面

"${pageContext.request.contextPath }/user/uploadPicture" method="post" enctype="multipart/form-data"> type="file" name="userPicture">
type="submit" value="上传">

编写后台Controller,使用MultipartFile 接口,来处理multipart

@RequestMapping("uploadPicture")
//userPicture要和前台页面的上传组件name值相同
public String uploadPicture(MultipartFile userPicture) throws Exception{
    if(!userPicture.isEmpty()) {
        String filename = userPicture.getOriginalFilename();
        String filePath = "D://picture";
        userPicture.transferTo(new File(filePath+filename));
        return "/success.jsp";
    }else{
        return "/fail.jsp";
    }
}

MultipartFile 接口API
Spring提供了MultipartFile接口,为处理multipart数据提供了内容更为丰富的API。
SpringMVC实现文件上传_第1张图片

你可能感兴趣的:(SpringMVC)