springboot项目中图片上传之后需要重启工程才能看到图片?

需求背景

最近在做一个用户自定义上传头像的小需求,用户上传头像然后需要立马回显。

需求是很常见的、正当的需求。如果不使用到对象存储这类服务,我们把用户头像的图片文件仅存在本地就可以了。我们在开发的过程中为了工程管理方便通常下意识会将图片上传目录设置为代码工程的一个子目录。问题就出在这里。

现象分析

因为静态资源文件在工程启动的时候就已经加载完成了,用户上传的头像不会再加载到程序内存中。所以这样会导致一个问题,我们在前端操作头像图片文件上传。头像文件也确实上传到了指定目录下面。但是前端访问获取图片资源就是获取不到,报错404。
在这里插入图片描述

解决方案

自己检索了一下问题,除了本身上传代码就有问题之外,基本大家给出的方案包含两个方向:

  • 配置工程热启动(x)
  • 修改图片上传目录为代码工程之外的目录(√)

”配置工程热启动“这个方法十分繁琐,需要在工程中引入热启动依赖:

<dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-devtools</artifactId>
                    <scope>runtime</scope>
                    <optional>true</optional>
                </dependency>

并且需要配置IDEA,最糟糕的是没有效果!!!

最后可行的解决方案我只找到这个:修改图片上传目录为代码工程之外的目录。

在这里插入图片描述

传送门

  • 解决SpringBoot + Vue图片上传后不立刻回显的问题:https://springboot.io/t/topic/4806
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值