SpringMVC image upload and interceptors

SpringMVC image upload

private Images upload(Images images, HttpServletRequest req) {
	FileOutputStream fileOutputStream = null;
	try {
		//把上传附件的核心代码  封装成MultipartFile对象
		MultipartFile fileImg = images.getFileImg();
		//获取附件名
		String filename = fileImg.getOriginalFilename();
		//判断名字是否有值 如果有值 则上传附件
		if (StringUtils.hasLength(filename)) {
			//获取根路径
			String realPath = req.getServletContext().getRealPath("/");
			//判断是否上传了新的附件 如果有值将先删除之前的文件
			if (StringUtils.hasLength(images.getStorepath())) {
				//构建出这个文件 
				File file = new File(realPath,images.getStorepath());
				if (file.exists()) {
					file.delete();
				}
			}
			//上传附件
			//1. 构建一个新的文件名
			String NewFileName = UUID.randomUUID()+"."+FilenameUtils.getExtension(filename);;
			//2. 设置数据库的存储名称
			String path = "/upload/"+NewFileName;
			//3. 构建出一个文件
			File file = new File(realPath,path);
			//4. 创建出一个输出流
			fileOutputStream = new FileOutputStream(file);
			//5. 上传附件
			IOUtils.copy(fileImg.getInputStream(), fileOutputStream);
			//6. 设置附件名
			images.setStorename(filename);
			//7. 设置存储路径
			images.setStorepath(path);
			return images;
		}
	} catch (Exception e) {
		// TODO: handle exception
	}finally {
		try {
			if (fileOutputStream != null) {
				fileOutputStream.close();
			}
		} catch (Exception e2) {
			// TODO: handle exception
		}
	}
	return images;
}

SpringMvc interceptors

Code:

public class LoginIntercepter implements HandlerInterceptor {

	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		// TODO Auto-generated method stub
	}
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		// TODO Auto-generated method stub
		
	}
	/**
	 * 在执行目标方法之前 先执行此方法
	 *  @return true代表放心 false代表拦截
	 */
	@Override
	public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object arg2) throws Exception {
		HttpSession session = req.getSession();
		Object object = session.getAttribute(Constant.USER_IN_SESSION);
		if (object == null) {
			resp.sendRedirect("/login.jsp");
			return false;
		}
		
		return true;
	}

}

Configuration:

<!-- 配置springMVC的拦截器 -->
	<mvc:interceptors>
		<mvc:interceptor>
			<!-- 
				代表拦截所有已system开头的资源
				/* 拦截所有路径   只能拦截一级  /a/b  拦截不了
				/**  拦截所有路径   拦截所有级别 /a  /b  /a/b
			 -->
		
			<mvc:mapping path="/system/**"/>
			<bean class="cn.itsource.cms.web.controller.intercepter.LoginIntercepter"></bean>
		</mvc:interceptor>
	</mvc:interceptors>
Published 54 original articles · won praise 9 · views 940

Guess you like

Origin blog.csdn.net/qq_40629521/article/details/103731555