springBoot 用户头像的修改并及时显示

修改头像功能实现:

实现修改头像功能的逻辑。

1. 首先,是一个触发修改头像的超链接,然后给该超链接绑定打开文件上传的事件。

2. js校验文件上传的格式,如果不符合返回警告信息,符合的话就向后台发送请求文件上传。

3 . 后台文件上传的逻辑是改变数据库表中的属性值且将图片放入服务器中

4.  最后,返回上传图片是否成功,js判断返回值如果成功刷新界面,不成功发出警告信息。

前台jsp页面:

	
		

修改头像

绑定超链接的文件上传事件关键代码

 

后台代码:

控制层:

/**
     * 修改头像
     * @param file
     * @return
     */
 	@RequestMapping(value = "/queryImg", method = RequestMethod.POST)
 	@ResponseBody
 	public Map queryImg(HttpServletRequest request, HttpSession session,
 			@RequestParam(value = "file", required = false) MultipartFile file) {
 		String path = request.getServletContext().getRealPath("/") + "images\\uploads\\";
 		File uploads = new File(path);
 		// 如果文件夹不存在则创建
 		if (!uploads.exists() && !uploads.isDirectory()) {
 			uploads.mkdirs();
 		}
 		String locPath = "";
 		String fileName = file.getOriginalFilename();
 		File newfile = new File(path, fileName);
 		try {
 			file.transferTo(newfile);
 			locPath = path + fileName;
 		} catch (IllegalStateException e) {
 			e.printStackTrace();
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
 		// 将文件上传的路径给user对象
 		String header = "images/uploads/" + fileName;
 		//从session中拿出
 		User userSession = (User) session.getAttribute("loginedUser");
 		String username = userSession.getUsername();
 		boolean flag = ubiz.queryImg(username, header);
 		User byUid = ubiz.getByUid(userSession.getUid());
 		//重新存入到session,为了修改成功及时显示
 		session.setAttribute("loginedUser", byUid);
 		Map resultMap = new HashMap();
 		if (flag) {
 			resultMap.put("result", "true");
 		} else {
 			resultMap.put("result", "false");
 		}
 		return resultMap;
 	}   

 

你可能感兴趣的:(springBoot)