使用SpringMVC上传多文件

本文介绍如何在SpringMVC中实现多文件上传功能。包括前端JSP页面的设计、控制器中处理多文件上传的逻辑及配置文件springMVC-servlet.xml的设置。

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

使用SpringMVC上传多文件

1.首先看jsp页面
<!-- 注意一点要加上enctype="multipart/form-data",文件的传输格式 -->
  <form action="file/upload" method="post" enctype="multipart/form-data">
    <table>
    	<tr><td><input type="file" name="file1"/></td></tr>
    	<tr><td><input type="file" name="file2"/></td></tr>
    	<tr><td><input type="file" name="file3"/></td></tr>
    	<tr><td><input type="submit" value="上传"/></td></tr>
    	
    </table>
    </form>
2.控制器中的代码

@Controller
@RequestMapping("/file")
public class FileUploadController {
	@RequestMapping("/upload")
	public String fileUpload(HttpServletRequest request) throws Exception{
		//根据request请求创建一多部分解器
		CommonsMultipartResolver multipartResolver =new CommonsMultipartResolver(
		request.getSession().getServletContext());
		
		//判读是否请求中有没有enctype="multipart/form-data"
		if(multipartResolver.isMultipart(request)){
			//将request按Multipart的形式分为多个request
			MultipartHttpServletRequest multiRequest =(MultipartHttpServletRequest) request;
			//获取所有的文件域
			Iterator iter = multiRequest.getFileNames();
			
			while(iter.hasNext()){
				MultipartFile file = multiRequest.getFile(iter.next().toString());
				if(file.getOriginalFilename()!=""){
					
					//获取文件路径(可以在前面加上时间戳防止重复,并可以进行覆盖)
					String path=request.getSession().getServletContext().getRealPath("/userfile/")+file.getOriginalFilename();
					System.out.println("文件路径:"+path);
					
					//对该文件进行上传,如果文件已存在该如何处理
					file.transferTo(new File(path));
					
				}
			}
		}
		return "index";
		
	}

3.springMVC-servlet.xml的代码

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
			<!-- 文件大小1024*1024(自己计算好以Byte单位) 缓冲区大小  字符编码 -->
			<property name="maxUploadSize" value="1048576"/>
			<property name="maxInMemorySize" value="4096"/>
			<property name="defaultEncoding" value="UTF-8"/>
		</bean>

注意一点:要导包




                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值