Article Directory
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>