springmvc框架的文件上传是基于 commons-fileupload 组件,并在上面进一步的进行了的封装,使代码变得更加的简单。
首先要在pom.xml中添加依赖
MultipartResolver用于文件上传,当收到请求时 DispatcherServlet 的 checkMultipart() 方法会调用 MultipartResolver 的 isMultipart() 方法判断请求中是否包含文件。如果请求数据中包含文件,则调用 MultipartResolver 的 resolveMultipart() 方法对请求的数据进行解析,然后将文件数据解析成 MultipartFile 并封装在 MultipartHttpServletRequest (继承了 HttpServletRequest) 对象中,最后传递给 Controller。
我们需要在spring-mvc中配置好它。
在控制器中,通过注解告诉MultipartResolver上传的是文件,通过transferTo方法将文件写入。我做的是一个web项目,所以通过getRealPath拿到路径,最后将文件上传。