SpringBoot konfiguriert den virtuellen Pfad für den Image-Zugriff

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
Bildbeschreibung hier einfügen
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.

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen
Das Bild zeigt, dass es erfolgreich konfiguriert wurde! ! ! ! !

Ich denke du magst

Origin blog.csdn.net/m0_46590717/article/details/122993317
Empfohlen
Rangfolge