Not allowed to load local resource问题解决方案

遇到问题时间:2024-06-09
遇到该问题的原因在做大事件项目的时,完善文件上传接口(文章封面图片和头像),由于资金不足(不想买阿里云哈哈哈哈哈哈)所以想着把上传后的文件存储到本地的磁盘当中,

以下是后端文件上传的代码

@Service
public class UploadServiceImpl implements UploadService {
    @Override
   public Result upload(MultipartFile file){
        //获取文件名
        String originalFilename = file.getOriginalFilename();
        String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
        //通过UUID为文件添加唯一名称,防止重名导致文件覆盖
        String newFileName =UUID.randomUUID().toString().replace("-","")+suffix;
        try{

           file.transferTo(new File("D:\\trash\\uploadImg\\"+newFileName));
            return Result.success(""D:\\trash\\uploadImg\\"+newFileName");
       }
       catch (IOException e){
           e.printStackTrace();
       }
     return Result.success();
    }

}

在前端文件上传成功之后,发现上传后的照片并不会在前端回显,甚是苦恼。

在打开浏览器开发者工具后发现Not allowed to load local resource的异常,由于之前从未见过如此异常,所以在网上搜索了一下,原来产生这个异常的原因是为了安全问题浏览器不允许直接访问本地内存。

解决方案:

  后端提供了映射地址的方式,使本地的文件可以通过后端的url来映射访问

代码:

@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
 
    @Value("${file.upload}")//在配置文件中定义的文件上传到本地磁盘的地址
    private String fileUpload;//定义的后端映射地址 此处纬 /file/**
    @Value("${file.path}")
    private String filePath;


    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler(filePath).addResourceLocations("file:///" + fileUpload);
    }
}

在编写完此配置文件之后,向前端返回一个映射的url,也就是:http://localhost:端口号/filePath/文件名字就可以完成图片的回显

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Not allowed to load local resource错误通常发生在浏览器或移动应用程序中,当尝试加载本地资源(比如文件或图片)时。为了解决这个问题,可以尝试以下几种方法: 1. 使用Web服务器:将你的网页文件和资源放在Web服务器上,并通过HTTP协议进行访问。这样可以避免浏览器对本地资源的限制。你可以使用一些常见的Web服务器软件,如Apache、Nginx等。 2. 使用相对路径:确保你在网页中使用的资源引用是相对路径,而不是绝对路径。相对路径指的是相对于当前网页文件的路径。这样可以确保浏览器可以正确加载资源。 3. 使用base标签:在HTML的<head>部分添加一个<base>标签,并指定一个基本URL。这样,所有相对路径的资源引用都会以这个基本URL为准进行解析。 4. 设置网页的安全策略:在某些情况下,浏览器可能会限制对本地资源的访问,以保护用户的安全。你可以通过设置网页的安全策略,允许加载本地资源。这可以通过在网页的HTTP响应头中添加Content-Security-Policy或X-Content-Security-Policy字段来实现。 需要注意的是,尽管有些方法可以解决Not allowed to load local resource错误,但在某些情况下,浏览器可能仍然会限制对本地资源的访问。这是为了保护用户的安全和隐私。如果你的应用程序或网页必须加载本地资源,最好考虑使用Web服务器来托管这些资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值