使用Spirng MVC实现单文件上传

版权声明:如需转载,请注明出处,谢谢! https://blog.csdn.net/qq_41172416/article/details/82839439

1、导入jar文件

 

 2、在 springmvc-servlet.xml中配置MultipartResolver

	<!-- 配置MultipartResolver,用于上传文件,使用spring的CommonsMultipartResolver -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="5000000"/>
		<property name="defaultEncoding" value="UTF-8"/>
	</bean>

 注意:

1️⃣ defaultEncoding:请求的编码格式,默认为ISO-8859-1,此处设置为UTF-8(注:defaultEncoding必须和jsp的 pageEncoding设置一致,以便正确读取表单的内容)。

2️⃣ maxUploadSize:上传文件大小上限,单位为字节。

3、编写文件上传表单页

注意:表单的编码类型必须是 “multipart/form-data”类型

<form id="userForm" name="userForm" method="post"
		action="${pageContext.request.contextPath }/user/addsave.html"
		enctype="multipart/form-data">
		<input type="hidden" name="method" value="add">
		<!--中间代码省略-->
		<div>
			<label for="a_idpicpath">证件照:</label> 
			<input type="file" name="a_idpicPath" id="a_idpicpath" /> 
			<font color="red"></font>
		</div>
</form>

4、编写控制器 

    /**
	 * 添加用户
	 * @param user
	 * @param session
	 * @return
	 */
	@RequestMapping(value="/addsave.html",method=RequestMethod.POST)
	public String addUserSave(User user,
							  HttpSession session,
							  HttpServletRequest request,
							  @RequestParam(value="a_idpicPath",required=false) MultipartFile attach){
		String idPicPath=null;
		//判断文件是否为空
		if(!attach.isEmpty()){
			String path=request.getSession().getServletContext().getRealPath("statics"+File.separator+"uploadfiles");
			String oldFileName=attach.getOriginalFilename();//原文件名
			String prefix=FilenameUtils.getExtension(oldFileName);//原文件后缀
			int filesize=500000;
			if(attach.getSize()>filesize){
				request.setAttribute("uploadFileError", "上传文件不得超过 500KB");
				return "useradd";
			}else if(prefix.equalsIgnoreCase("jpg") 
					|| prefix.equalsIgnoreCase("png")  
					|| prefix.equalsIgnoreCase("jpeg")  
					|| prefix.equalsIgnoreCase("pneg")){//上传图片格式不正确
				String fileName=System.currentTimeMillis()+RandomUtils.nextInt(1000000)+"_Personal.jpg";
				File targetFile=new File(path, fileName);
				if(!targetFile.exists()){
					targetFile.mkdirs();
				}
				//保存
				try {
					attach.transferTo(targetFile);
				} catch (Exception e) {
					e.printStackTrace();
					request.setAttribute("uploadFileError", " * 上传失败!");
					return "useradd";
				} 
				idPicPath=path+File.separator+fileName;
			}else{
				request.setAttribute("uploadFileError", " * 上传图片格式不正确!");
				return "useradd";
			}
		}
		user.setCreatedBy( ((User)session.getAttribute(Constants.USER_SESSION)).getId());//创建者
		user.setCreationDate(new Date());//创建时间
		user.setIdPicPath(idPicPath);
		if(userService.add(user)){
			return "redirect:/user/userlist.html";
		}else{
			return "useradd";
		}
	}

猜你喜欢

转载自blog.csdn.net/qq_41172416/article/details/82839439
今日推荐