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
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.
¡La imagen muestra que se ha configurado correctamente! ! ! ! !