springboot前台页面访问某磁盘路径下的资源

SpringBoot中,前台页面无法直接访问磁盘路径资源,通常建议只访问静态资源以确保安全。若需要通过URL访问,可以设置虚拟路径,但需谨慎对待重要文件的安全性。一种方法是使用拦截器,具体实现可参考相关博客。对于高安全性需求,推荐通过控制器处理请求,并结合Shiro注解进行权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://blog.youkuaiyun.com/qq_30447263/article/details/81085171

springboot前台页面访问某磁盘路径下的资源,直接访问不了,可以通过虚拟的方式,通过url方式访问。

package com.bootdo.x.config;

import com.bootdo.common.config.BootdoConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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 WebConfig implements WebMvcConfigurer {

    @Value("${bootdo.virtualPath}")
    private String virtualPath;

    @Value("${bootdo.uploadPath}")
    private String uploadPath;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //在F:/SpringBootFiles/Image/下如果有一张 Excalibar.jpg的图片,那么:
        //【1】访问:http://localhost:8080/imgs/Excalibar.jpg 可以访问到
        //【2】html 中 <img src="imgs/Excalibar.jpg">
        //registry.addResourceHandler("/img/m/**").addResourceLocations("file:E:/var/uploaded_files/");
        registry.addResourceHandler(virtualPath+"**").addResourceLocations("file:"+uploadPath);
    }

}

其实这个方式不太安全。如果是非常重要的文件,不想要别人随便访问。所以建议只访问静态资源。

如果一定要通过这种方式访问重要文件,其实也可以。只是要单独加拦截器。具体见:https://www.cnblogs.com/yangxiansen/p/7859991.html 。不知道能不能与shiro配全使用,使代码更简洁,还有待研究。

对于比较重要的文件,还是通过请求发送给controller进行处理,这样可以通过shiro用注解来直接设置权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值