SpringMvc(4)文件上传

1.使用fileUpload  将所需要的包导入项目

commons-fileupload-1.2.1.jar

commons-io-1.4.jar


2.配置user-servlet.xml

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="5000000"></property>
	</bean>


3.封装表单

<sf:form method="post" modelAttribute="user" enctype="multipart/form-data">
	UserName:<sf:input path="username"/><sf:errors path="username"/><br/>
	Password:<sf:password path="password"/><sf:errors path="password"/><br/>
	Nickname:<sf:input path="nickname"/><sf:errors path="nickname"/><br/>
	Email: <sf:input path="email"/><sf:errors path="email"/><br/>
	photo:<input type="file" name="photo"/><br/>
<input type="submit"/>
</sf:form>

4.编写UserContorller.java

@RequestMapping(value = "/add", method = RequestMethod.POST)
	public String add(@Valid User user,BindingResult binding,MultipartFile photo) {//BindingResult必须要在验证的对象之后
		if(binding.hasErrors()){
			System.out.println("=========BindingResult============");
			return "user/add";
		}
		System.out.println(photo.getContentType()+","+photo.getName()+","+photo.getOriginalFilename());
		users.put(user.getUsername(), user);
		//加上前缀 使用客户端跳转 防止重复提交
		return InternalResourceViewResolver.REDIRECT_URL_PREFIX+"/user/users";
	}

测试后输出信息:image/jpeg,photo,IMG_20130328_203227.jpg

5.将文件保存起来UserContorller.java

@RequestMapping(value = "/add", method = RequestMethod.POST)
	public String add(@Valid User user,BindingResult binding,MultipartFile photo,HttpServletRequest request) {//BindingResult必须要在验证的对象之后
		if(binding.hasErrors()){
			System.out.println("=========BindingResult============");
			return "user/add";
		}
		System.out.println(photo.getContentType()+","+photo.getName()+","+photo.getOriginalFilename());
		String realPath = request.getSession().getServletContext().getRealPath("/resources/upload")+File.separator+photo.getOriginalFilename();
		File file = new File(realPath);
		System.out.println("*******"+realPath);
		try {
			photo.transferTo(file);
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		users.put(user.getUsername(), user);
		//加上前缀 使用客户端跳转 防止重复提交
		return InternalResourceViewResolver.REDIRECT_URL_PREFIX+"/user/users";
	}

6.上传多个文件 注意要验证 

@RequestMapping(value = "/add", method = RequestMethod.POST)
	public String add(@Valid User user,BindingResult binding,@RequestParam(required=false) MultipartFile[] photos,HttpServletRequest request) {//BindingResult必须要在验证的对象之后
		if(binding.hasErrors()){
			System.out.println("=========BindingResult============");
			return "user/add";
		}
		for(MultipartFile photo:photos){
			if((!(photo.getOriginalFilename()==null||"".equals(photo.getOriginalFilename())))){//可以直接改为photo.isEmpty()
				System.out.println(photo.getContentType()+","+photo.getName()+","+photo.getOriginalFilename());
				String realPath = request.getSession().getServletContext().getRealPath("/resources/upload")+File.separator+photo.getOriginalFilename();
				File file = new File(realPath);
				System.out.println("*******"+realPath);
				try {
					photo.transferTo(file);
				} catch (IllegalStateException e) {
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		users.put(user.getUsername(), user);
		//加上前缀 使用客户端跳转 防止重复提交
		return InternalResourceViewResolver.REDIRECT_URL_PREFIX+"/user/users";
	}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值