使用SpringMVC上传多文件

使用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>

注意一点:要导包



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值