0
点赞
收藏
分享

微信扫一扫

SpringMcv 文件上传下载

文件上传

Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。

Spring 用 Jakarta Commons FileUpload 技术实现了一个 MultipartResolver 实现类:CommonsMultipartResovler

Spring MVC 上下文中默认没有装配 MultipartResovler,因此默认情况下不能处理文件的上传工作,如果想使用 Spring 的文件上传功能,需现在上下文中配置 MultipartResolver image.png

配置 MultipartResolver

defaultEncoding: 必须和用户 JSP 的 pageEncoding 属性一致,以便正确解析表单的内容

为了让 CommonsMultipartResovler 正确工作,必须先将 Jakarta Commons FileUpload 及 Jakarta Commons io 的类包添加到类路径下。 image.png

  • jar包
commons-fileupload-1.2.1.jar
commons-io-2.0.jar
  • 配置文件上传解析器
<!-- 配置文件上传解析器 id必须是"multipartResolver",否则,会报错误: java.lang.IllegalArgumentException: 
	Expected MultipartHttpServletRequest: is a MultipartResolver configured? -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<property name="defaultEncoding" value="UTF-8"></property>
	<property name="maxUploadSize" value="1024000"></property>
</bean>
  • 上传类型为file
</head>
<body>
	<form action="testUpload" method="post" enctype="multipart/form-data">
		文件: <input type="file" name="file" /><br>
		<br> 描述: <input type="text" name="desc" /><br>
		<br> <input type="submit" value="提交" />
	</form>
</body>
  • 控制器方法
  • @RequestParam("file") MultipartFile multipartFile 获取文件
@RequestMapping(value = "/testUpload", method = RequestMethod.POST)
public String testUpload(
  @RequestParam(value = "desc", required = false) String desc,
  @RequestParam("file") MultipartFile multipartFile)
  throws IOException {
	//上传到指定位置
	multipartFile.transferTo(new File("D:\\java" + multipartFile.getOriginalFilename()));
	return "success";
}

多文件上传

image.png

举报

相关推荐

0 条评论