SpringMVC实现文件上传

本文详细介绍如何使用SpringMVC进行文件上传与下载。主要内容包括配置servlet版本对应的文件解析器,设置web.xml中文件上传参数,以及Controller层的具体实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC让文件上传变得更加便捷

这是需要导入的jar包:


实现文件下载只需要以下几个步骤:
1.首先是前端页面表单提交  enctype="multipart/form-data"
2.根据servlet的版本选择相应的文件下载帮助bean类
<!-- 当前我的servlet容器版本是2.5的 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="200000"></property>
</bean>
<!-- 当前我的servlet容器版本是3.0的 -->
<bean id="multipartResolver"
        class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
</bean>
值得注意的是3.0后servlet上传文件是不需要借助commons-fileupload这些第三方jar包的,他都是注解标注实现的,。。。。
所以在web.xml文件还需要配置
 <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>/WEB-INF/config/springmvc.xml</param-value>
  	</init-param>
  	<multipart-config>
  		<file-size-threshold>20000</file-size-threshold>
  	</multipart-config>
  </servlet>
这里面的
<multipart-config>
这个节点,通过该节点可以配置相应的文件上传参数

至于怎么查看servlet的版本可以百度一下

以下摘抄我的controller类里一段保存图片代码

@RequestMapping("/save")
	public String save(
			HttpServletRequest httpServletRequest,
			Student student, Model model) {
		String path = httpServletRequest.getRealPath("/images") + "/"
				+ student.getId() + ".jpg";
		if (student.getImages() != null) {
			MultipartFile multipartFile = student.getImages() ;
			File dest = new File(path);
			try {
				multipartFile.transferTo(dest);
			} catch (IllegalStateException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		model.addAttribute("student", student);
		return "detail";
	}


不管是3.0还是3.0以下Controller类里的写法都差不多,实现思路都是靠自己要怎么写就怎么写,关键就是 这个MultipartFile接口,你上传的文件属性必须由这个接口
的对象来接受,然后对其进行操作,以下是该接口的方法截图:


查看源代码会发现开发人员已经把注释写明白在里面了。

有兴趣的也可以参考帮助文档http://docs.spring.io/spring/docs/4.2.8.RELEASE/spring-framework-reference/htmlsingle/#mvc-multipart 在21.10的章节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值