SpringBoot プロジェクトが URL 実装メソッドを通じてローカル ファイルにアクセスし、発生した問題

シーン

ファイルがサーバーにアップロードされたら、URL を介してサーバー上の対応するファイルにアクセスする必要があります。これには画像やその他のファイルを指定できます。

達成

/show/**SpringBootは本質的に組み込みの Tomcat であるため、Tomcat ディレクトリから必要なリソースに直接アクセスすることはできないため、WebMvcConfigurer を継承して独自のインターセプターを実装し、アクセス用のローカル フォルダー アドレスをマップする必要があります
。ファイルの末尾、つまりファイル区切り文字には必ず「/」を追加してください。そうしないと、対応するフォルダーに正しくマッピングできません。つまり、 と の違いは、アクセスするには前者を使用する必要があり
ます。正しくfile:D:/Demo/file:D:/Demo

package com.hwh.communitymanage.config;

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

import java.io.File;

/**
 * @description:
 * @author: HwH
 * @create: 2022-11-24 23:11
 **/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    
    

    // 静态资源展示
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    
    
        // PS:注意文件路径最后的斜杠(文件分隔符),如果缺少了,就不能够正确的映射到相应的目录
        String basePath = "file:D:/Demo/";
      	registry.addResourceHandler("/show/**").addResourceLocations(basePath);
    }

}

テスト

上記の設定が完了したら、プロジェクトを起動し、ディレクトリ内のファイルのURLアドレスにアクセスします
localhost:8080/show/1.jpg
図が表示されていれば、正しくアクセスできています。
ここに画像の説明を挿入

シロなどの認可検証を追加する場合は、対応するホワイトリストに追加するか、アクセス時にトークンを携行してシロが検証を通過できるようにする必要があります。

おすすめ

転載: blog.csdn.net/DespairC/article/details/128690076