Aufzeichnung einer Notiz zur Konfiguration virtueller Pfade für den Zugriff auf Bilder in SpringBoot Die
kürzlich geschriebenen Projekte müssen alle auf Bilder zugreifen, und meines ist ein Projekt, das vom spring+springMVC+Mybatis-Framework implementiert wird, und die Bilder werden bereits verwendet, wenn das ssm-Framework The virtual Pfad des Zugriffs wird für den Zugriff verwendet. Der virtuelle Pfad der ssm-Konfiguration ist eigentlich der auf Tomcat konfigurierte Bildzugriff, und SpringBoot ist in Tomcat integriert, also wie sollte es konfiguriert werden? Siehe Abbildung unten,
konfigurieren Sie zuerst den Bild-Upload-Pfad
Dies ist das Code-Snippet der jsp-Seite
<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>
js-Codeausschnitt
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");
}
}
});
Als nächstes folgt die spezifische Konfiguration im Controller
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;
}
Der in der Datenbank gespeicherte
Bildpfad Nachdem alles eingerichtet ist, müssen Sie den virtuellen Pfad für SpringBoot konfigurieren, um auf das Bild zuzugreifen Erstellen Sie eine
neue Konfigurationssteuerklasse und erstellen Sie darin eine neue Klassenmethode WebMvcConfig, um den virtuellen Pfad für das Bild zu konfigurieren Spezifischer
Code
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/**") ist der Pfad, in dem ich auf Bilder im Projekt zugreife, was der Bildspeicherpfad in den Daten ist, und addResourceLocations("file:D:/uploadLibrary/") ist der tatsächliche Pfad, in dem ich Bilder hochladen Der tatsächliche Pfad zum Hochladen von Bildern ist **D:/uploadLibrary/** Nach der Konfiguration können Sie auf die Projektbilder zugreifen, indem Sie das Projekt ausführen.
Das Bild zeigt, dass es erfolgreich konfiguriert wurde! ! ! ! !