当vue前端上传一张图片到sptingboot后台文件夹下的时候,需要重启启动后台项目,才可以在浏览器中访问刚刚上传的这张图片,如在浏览器输入:

http://localhost:8188/123.jpg

123.jpg前面都是你后台项目的访问路径,因为你的图片已经保存到后台了,所以通过http://localhost:8188+图片名称就可以访问图片,解决的方法就是写一个配置类,如下,但是配置完之后还是调用不了,证明addResourceHandlers调用无效

项目文件目录:

在这里插入图片描述

配置类代码:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyPicConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload/**").
                addResourceLocations("file:E:/NodeDemo/resources/static/upload/");
    }
}

这里讲一下:

1.addResourceLocations("file:E:/NodeDemo/resources/static/upload/")里面的参数必须要写成"file:+路径"的形式,该路径一直到你上传图片的位置
1.addResourceLocations("file:E:/NodeDemo/resources/static/upload/")路径最后面的斜杠必须加,要不可以测试一下,是不会成功的
2.上传图片的位置不可以是static,要在static下重新创建一个文件夹upload来存放你的图片
3.在浏览器访问图片的时候一定要加上upload,如:http://localhost:8188/upload/123.jpg

如果按照上面的代码运行,addResourceHandlers调用无效那么证明你将上传图片的路径写到了static中而不是static下的upload

Logo

前往低代码交流专区

更多推荐