基于springMVC的文件上传

1.引入jar包:

下载地址:http://mvnrepository.com/

2.配置springmvc的xml

<!-- 支持上传文件 -->
	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
		<!-- 100M -->
		<property name="maxUploadSize" value="104857600"></property>	
		<property name="defaultEncoding" value="utf-8"></property>   
	</bean>

3.上传页面:

<body>
<!-- method必须为post enctype="multipart/form-data"支持文件上传-->
	<form action="test/add2.action" method="post" name="myform"
		enctype="multipart/form-data">
		姓名:<input type="text" name="username"><br> 
		密码:<input type="text" name="password"><br>
		<!-- name="myFile" 和controller里name一致 -->
		头像:<input type="file" name="myFile"><br> 
		<input type="submit" value="注册">
	</form>
</body>name="myFile"><br> 
		<input type="submit" value="注册">
	</form>
</body>

4.上传代码:

/**
	 * MultipartFile myFile,这个name和前台控件name一致
	 */
	@RequestMapping("/add2")
	public String add2(Model model,UserInfo user,MultipartFile myFile,
			HttpServletRequest request,HttpServletResponse response) throws IllegalStateException,
	IOException, ServletException {
		//如果不为空
		if(!myFile.isEmpty()) {
			//获取原名称
			String lastName = myFile.getOriginalFilename();
			//转码为新名称
			String targetName = UUID.randomUUID().toString().substring(0, 7)+lastName.substring(lastName.lastIndexOf(".")); 
		    //获取服务器路径
			String webDir = request.getSession().getServletContext().getRealPath("/upload");
                       //String computerDir="f://image";本地路径
                        //new File(computerDir).mkdir();创建文件夹
                      //根据这个路径和名字创建的file对象
			File targetFile = new File(webDir,targetName);
		    //上传
			myFile.transferTo(targetFile);
		    user.setPic("upload/"+targetName);
		}
		int count = userService.add2(user);
		if(count>0) {
			model.addAttribute("user", user);
			return "ulist3";
		}else {
			//跳转其他页面
		}
	}
}

,MultipartFile myFile,
			HttpServletRequest request,HttpServletResponse response) throws IllegalStateException,
	IOException, ServletException {
		//如果不为空
		if(!myFile.isEmpty()) {
			//获取原名称
			String lastName = myFile.getOriginalFilename();
			//转码为新名称
			String targetName = UUID.randomUUID().toString().substring(0, 7)+lastName.substring(lastName.lastIndexOf(".")); 
		    //获取服务器路径
			String webDir = request.getSession().getServletContext().getRealPath("/upload");
                       //String computerDir="f://image";本地路径
                        //new File(computerDir).mkdir();创建文件夹
                      //根据这个路径和名字创建的file对象
			File targetFile = new File(webDir,targetName);
		    //上传
			myFile.transferTo(targetFile);
		    user.setPic("upload/"+targetName);
		}
		int count = userService.add2(user);
		if(count>0) {
			model.addAttribute("user", user);
			return "ulist3";
		}else {
			//跳转其他页面
		}
	}
}

5.显示图片:

<body>
姓名:<input type="text" name="username" value="${user.username}"><br>
密码:<input type="text" name="password" value="${user.password}"><br>
头像:<img alt="" src="${user.pic}" style="width: 50px;height: 50px"><br>
</body>

效果图:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值