springboot 更新头像后前端无法显示

springboot项目 更新头像

img

前端代码:

<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为空,显示默认图片,如果不为空,拼接头像信息后显示对应的头像.

产生的问题:

实现了文件上传,并且下载到了本地,但是前端无法显示,看了前端代码,路径应该没错,但是为什么显示不出来呢?求解.

img

控制器输出:

img

但是前端显示:

img

查看页面源码:

img

再看本地文件夹:

img

文件确实存在,但是为什么我重新加载的时候无法识别呢?求解!

点开蓝色链接看下图片能不能显示?

alt