SpringMVC(十五)_文件的上传

本文详细介绍如何使用SpringMVC进行文件上传操作。通过配置MultipartResolver并利用Jakarta Commons FileUpload技术,使得文件上传变得简单高效。文章还提供了一个完整的示例,包括配置、前端表单和后端处理。

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

       前言:本篇主要介绍SpringMVC如何处理文件上传,用法超级简单,开发效率高。

 

       Spring MVC为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。Spring用Jakarta Commons FileUpload 技术实现了一个MultipartResolver 实现类:CommonsMultipartResovler。

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

 

1. 加入相关jar包


  

2. 配置SpringMVC配置文件

<!-- 配置 MultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8"></property>
    <property name="maxUploadSize" value="1024000"></property>  
</bean> 

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

 

3. 前台代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试文件上传</title>
</head>
<body>

	<form action="testFileUpload.action" method="POST" enctype="multipart/form-data">
		File: <input type="file" name="file"/>
		Desc: <input type="text" name="desc"/>
		<input type="submit" value="Submit"/>
	</form>
	
</body>
</html>

      注意:编码方式为UTF-8,与SpringMVC配置文件中保持一致; 

 

4. 后台代码 

@RequestMapping("/testFileUpload.action")
public String testFileUpload(@RequestParam("desc") String desc,
                             @RequestParam("file") MultipartFile file) throws IOException{

    String tomcatPath = System.getProperty("catalina.home");
    File   destFile   = new File(tomcatPath + File.separator + "temp" + File.separator + file.getOriginalFilename());
    file.transferTo(destFile);
    
    System.out.println("desc: " + desc);
    System.out.println("OriginalFilename: " + file.getOriginalFilename());
    return "success";
}

 

 

代码下载来源:http://super-wangj.iteye.com/blog/2388430

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值