Spring MVC高级技术--处理multipart形式的数据

处理multipart形式的数据

⽂件上传

原⽣servlet处理上传的⽂件数据的, springmvc⼜是对serlvet的封装
所需jar包:

<!--⽂件上传所需jar坐标-->
<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
	<version>1.3.1</version>
</dependency>

spring配置文件中,配置⽂件上传解析器

<!--配置⽂件上传解析器, id是固定的multipartResolver-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<!--设置上传⼤⼩,单位字节-->
	<property name="maxUploadSize" value="1000000000"/>
</bean>

前端Form

<%--
1 method="post"
2 enctype="multipart/form-data"
3 type="file"
--%>
<form method="post" enctype="multipart/form-data" action="/demo/upload">
	<input type="file" name="uploadFile"/>
	<input type="submit" value="上传"/>
</form>

后台接收Handler

@RequestMapping("upload")
public String upload(MultipartFile uploadFile, HttpServletRequest request) throws IOException {
	// ⽂件原名,如xxx.jpg
	String originalFilename = uploadFile.getOriginalFilename();
	// 获取⽂件的扩展名,如jpg
	String extendName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length());
	String uuid = UUID.randomUUID().toString();
	// 新的⽂件名字
	String newName = uuid + "." + extendName;
	String realPath = request.getSession().getServletContext().getRealPath("/uploads");
	// 解决⽂件夹存放⽂件数量限制,按⽇期存放
	String datePath = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
	File floder = new File(realPath + "/" + datePath);
	if(!floder.exists()) {
		floder.mkdirs();
	}
	uploadFile.transferTo(new File(floder,newName));
	return "success";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值