Spring MVC中的文件上传

Spring MVC 框架是高度可配置的,包含多种视图技术,例如 JSP 技术、Velocity。我们可以利用Spring MVC 框架来对文件进行上传和下载功能,使用Spring MVC 框架对文件进行上传和下载就变得更加简单和减少代码量。实现文件上传首先需要创建一个web项目并引用相应的jar包。如果想要这个项目启动起来我们必须要修改一下web.xml文件。如下图:我们需要在web.xml文件添加以下代码,下面的代码是我们SpringMvc.xml的相应配置,我们等下就要创建一个名为SpringMvc.xml的配置文件,因为在web容器中不可能只有一个配置文件,所以load-on-startup标签是让SpringMvc.xml跟随web容器第一个进行启动。url-pattern标签是配置路径,这里用“/”表示这个路径可以匹配所有的请求,这种配置还能实现restful。其实还有一种配置就是使用“.do”还可以写成“.action”表示以.do结尾的或者以.action结尾的URL都由前端控制器DispatcherServlet来解析 ,其余的匹配不上的静态资源由web.xml下的defaultservlet处理。
Spring MVC中的文件上传
接下来就是SpringMvc.xml的相关配置,如下图:开启SpringMvc的相关注解。因为我们写的控制器类都放在web包下,所以使用扫描机制扫描web包及其子包下的所有控制器类。上传文件需要用到jsp页面,所以需要注册视图解析器,不然jsp页面显示不出来,对模型视图名称的解析,即在模型视图名称添加前后缀。因为这里配置了默认后缀“.jsp”,路径为“/WEB‐INF/jsp”,所以在跳转页面的时候只用写jsp的名字,不用带后缀。因为我们需要对文件进行上传,所以需要配置上传文件的大小及编码格式。
Spring MVC中的文件上传
jsp页面如下:from表单提交数据,它的请求路径是控制器路径+方法路径。
Spring MVC中的文件上传
控制器方法如下:@Controller用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller对象。@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。先获取file的文件名,这里的文件名是获取上传时的原名,然后获取上传文件的扩展名,使用当前时间的毫秒值加上其扩展名作为目标文件名。
Spring MVC中的文件上传
如下图是文件上传成功的效果图,上传成功后便可对此文件进行下载。
Spring MVC中的文件上传