springboot项目 更新头像
前端代码:
<div class="head">
<span th:if="${session.loginUser==null}">
<span><img id="user_photo" th:src="@{/images/header.png}" width="90" height="90"/></span>
</span>
<span th:if="${session.loginUser!=null}">
<span><img id="user_photo" th:src="@{'/touxiang/'+${session.loginUser.headerImage}}" width="90" height="90"/></span>
</span>
<form th:action="@{/loa/page/nupdateHeaderImagine}" enctype="multipart/form-data" method="post">
<div>
头像:<input type="file" id="file" name="file"/>
<button type="submit">上传</button>
</div>
</form>
/div>
后端控制器:
@PostMapping("/loa/page/nupdateHeaderImagine")
public String nupdateHeaderImagine(HttpServletRequest request)throws Exception{
Part part = request.getPart("file");//这是传递过来的文件
System.out.println("part = " + part);
//获取文件的名字
String fileName = part.getSubmittedFileName();
System.out.println("fileName = " + fileName);
String name = part.getName();
System.out.println("name = " + name);
//避免重名
String uuid = UUID.randomUUID().toString().replace("-", "");
//取文件的后缀
String filenames = fileName.substring(fileName.lastIndexOf("."));
String newName = uuid + filenames;
System.out.println("newName = " + newName);
//传到本地
String touxiang = "/Users/chenruiming/IdeaProjects/money/005-money-web/src/main/resources/static/touxiang/";
part.write(touxiang+newName);
System.out.println("存入本地");
//更新user
User user = (User) request.getSession().getAttribute(Constants.LOGIN_USER);
user.setHeaderImage(newName);
userService.updateHIById(user);
System.out.println("账户已设置好头像名称");
//覆盖一下
request.getSession().setAttribute(Constants.LOGIN_USER,user);
return "redirect:/loan/page/myCenter";
}
@GetMapping("/loan/page/myCenter")
public String myCenter(HttpServletRequest request){
//把该用户对应的账户剩余金额传回去
User user = (User) request.getSession().getAttribute(Constants.LOGIN_USER);
FinanceAccount financeAccount = financeService.queryFinanceAccountByUserId(user.getId());
if(!ObjectUtils.allNotNull(financeAccount)){
//return Result.error("系统升级中,请稍后再查询");
}
return "myCenter";
}
前端表单提交,传到后端控制器,把上传的图片保存到本地文件夹,因为登陆的时候已经在session中存入了loginUser,然后更新数据库中的User里的HeaderImage(里面存的是图片的全称,带后缀),然后将这个更新后的User覆盖掉之前Session的loginUser.完成这些操作后,跳转到重新加载个人中心的控制器,获取个人账户后跳转到myCenter.然后坐在前端判断,如果session里的loginUser为空,显示默认图片,如果不为空,拼接头像信息后显示对应的头像.
实现了文件上传,并且下载到了本地,但是前端无法显示,看了前端代码,路径应该没错,但是为什么显示不出来呢?求解.
控制器输出:
但是前端显示:
查看页面源码:
再看本地文件夹:
文件确实存在,但是为什么我重新加载的时候无法识别呢?求解!
点开蓝色链接看下图片能不能显示?