SpringBoot configura la ruta virtual para el acceso a la imagen

Grabando una nota sobre la configuración de rutas virtuales para acceder a las imágenes en SpringBoot
Todos los proyectos escritos recientemente necesitan acceder a las imágenes, y el mío es un proyecto implementado por el marco spring+springMVC+Mybatis, y las imágenes ya se usan cuando se usa el marco ssm The virtual la ruta de acceso se usa para el acceso. La ruta virtual de configuración de ssm es en realidad el acceso de imagen configurado en Tomcat, y SpringBoot está integrado en Tomcat, entonces, ¿cómo se debe configurar? Consulte la figura a continuación,
primero configure la ruta de carga de imágenes

Este es el fragmento de código de la página jsp

  <div class="layui-form-item">
        <label class="layui-form-label">简介图片</label>
        <div class="layui-upload layui-input-block">
            <button type="button" class="layui-btn" id="SingleUpload">
                <i class="layui-icon layui-icon-upload"></i> 上传图片
            </button>
            <img id="simpleImg" width="60px" height="60px">
        </div>
    </div>

fragmento de código js

 upload.render({
    
      //这里是上传一张图片
        elem: "#SingleUpload",
        url: ctx + "/book/SingleUpload",
        done: function (res, index, upload) {
    
    
            //假设code=0代表上传成功
            if (res.code == 0) {
    
    
                layer.msg("简介图片加载成功!", {
    
    icon: 1});
                $("#simpleImg").attr("src", res.image);
                $("#SingleUpload").addClass("layui-btn-disabled");
                $("#SingleUpload").off("click");
            }
        }
    });

Lo siguiente es la configuración específica en el Controlador

  private String simplePath = "D:/uploadLibrary/";
    // 详细图片地址
    private StringBuilder detailsPath = new StringBuilder();

 @RequestMapping("/SingleUpload")
    @ResponseBody
    public Map<String, Object> SingleUpload(@RequestParam("file") MultipartFile file, HttpServletRequest req,
                                            HttpSession session) {
    
    
        Map<String, Object> map = new HashMap<String, Object>();
        try {
    
    
            String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
            String filename = UUID.randomUUID() + suffixName;
            File filePath = new File(dirPath);
            if (!filePath.exists()) {
    
    
                filePath.mkdirs();
            }
            //创建虚拟路径存储
            simplePath = req.getServletContext().getContextPath() + "/file/" + filename;
            // simplePath = filename;
            map.put("image", simplePath);
            file.transferTo(new File(dirPath + filename));
            map.put("code", 0);
            map.put("msg", "上传成功");
        } catch (Exception e) {
    
    
            map.put("code", 1);
            map.put("msg", "上传失败");
            e.printStackTrace();
        }
        return map;
    }

La ruta de la imagen almacenada en la base de datos
inserte la descripción de la imagen aquí
Después de configurar todo, debe configurar la ruta virtual para que SpringBoot acceda a la imagen Cree una
nueva clase de control de configuración y cree un nuevo método de clase WebMvcConfig en ella para configurar la ruta virtual para la imagen
Código específico

package com.book.libratyman.config;

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 WebMvcConfig implements WebMvcConfigurer {
    
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    
    
        registry.addResourceHandler("/file/**").addResourceLocations("file:D:/uploadLibrary/");
    }
}


addResourceHandler("/file/**") es la ruta donde accedo a las imágenes en el proyecto, que es la ruta de almacenamiento de imágenes en los datos, y addResourceLocations("file:D:/uploadLibrary/") es la ruta real donde cargar imágenes La ruta real para cargar imágenes es **D:/uploadLibrary/** Después de la configuración, puede acceder a las imágenes del proyecto ejecutando el proyecto.

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
¡La imagen muestra que se ha configurado correctamente! ! ! ! !

Supongo que te gusta

Origin blog.csdn.net/m0_46590717/article/details/122993317
Recomendado
Clasificación