springboot网站开发解决图片存储问题,前端无法访问解决办法

news2024/9/23 9:29:32

最近使用springboot开发网站的时候,遇到了一个图片存储问题,我之前的方法是,把证书图片存在项目的static目录下面,这样的话,打包发布到远程服务器后,虽然可以正常展示已经打包封装好的内容,但是如果新产生的图片则是不行的!为此,我在网上搜了一下,换成另外的存储位置,采用路径映射的方式,解决了这个难题。

下面是解决思路和办法。

第一步:我们需要配置文件内添加一个路径信息:

#配置证书图片本地存储路径
file.uploadFolder=D:/zhengshu/

第二步,我们需要提前 准备好配置管理类的配置参数。

package com.example.mydemo.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
    // 通过读取配置项获取的文件上传路径
    @Value("${file.uploadFolder}")
    private String basePath;


    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        /*
         * 资源映射路径
         * addResourceHandler:访问映射路径
         * addResourceLocations:资源绝对路径
         */
        registry.addResourceHandler("/zhengshu/**").addResourceLocations("file:" + basePath);
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
}

如图,代码里加了注释,大家自己看就能看懂了。

读取配置文件的路径信息,通过一个registry的调用方法,完成了虚拟路径和实体路径的映射关系。

这样我们的网站项目,就能读取到本地物理路径内的图片信息了。

这样做可以提升安全,避开浏览器直接访问我们的本地硬盘信息。


 

如图,证书的存储物理路径,就是本地硬盘的某一个文件夹。

 

如图,前端提交的需求,接口确实正常执行了图片的创建存储操作。现在在前端是可以借助于虚拟路径正常访问这些图片的。

 

 

如图,前端浏览器可以 正常访问这些存在本地物理硬盘内的图片信息。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1536426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】Java程序员必备的一些流程图

一、spring的生命周期 Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要; 首先容器启动后,对bean进行初始化按照bean的定义,注入属性检测该对象是否实现了xxxAware接口,并将相…

浙江IGM机器人K5控制柜维修需要注意哪些问题?

IGM机器人K5控制柜常见故障及维修方法 1、电源故障: 表现为IGM机器人K5控制柜不能开机或突然断电。 检查:检查电源线是否连接良好,有无破损;检查电源模块的输出电压是否正常; 维修方法:如电源模块损坏&…

蓝桥杯-模拟-旋转图片

题目 思路 Python中range() 函数的使用介绍_python指定范围内的整数-CSDN博客 range(start, stop, step):生成一个序列包含start到stop-1的整数,其中步长为step 代码 n, m map(int, input().split()) a [list(map(int, input().split())) for _ in…

2024年Jira全面解析:从 Jira 的概念到优缺点、最新政策

Jira是澳大利亚的Atlassian公司开发的一款项目管理软件,名字来源于日文中“哥斯拉”的称呼“Gojira”。Jira不仅可以追踪缺陷和问题,还能管理项目。很多企业还将JIRA用于一些特殊的场景,比如作为仓库自动化工具、管理文档流程、优化费用等等。…

34 | 到底可不可以使用join?

在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类: 1. 我们 DBA 不让使用 join,使用 join 有什么问题呢? 2. 如果有两个大小不同的表做 join,应该用哪个表做驱动表呢? 今天这篇文…

实型数据详解

1 实型常量的表示方法 实数(real number)又称浮点数(floating-point number)。实数有两种表示形式: (1)十进制小数形式。它由数字和小数点组成(注意必须有小数点)。.123、123.、123.0、0.0都是十进制小数形式。 (2)指数形式。如123e3或123E3都代表123x103。但注意字母e(或E)…

LeetCode 热题 100 | 堆(一)

目录 1 什么是堆排序 1.1 什么是堆 1.2 如何构建堆 1.3 举例说明 2 215. 数组中的第 K 个最大元素 2.1 子树大根化 2.2 遍历所有子树 2.3 弹出栈顶元素 2.4 完整代码 菜鸟做题,语言是 C 1 什么是堆排序 1.1 什么是堆 堆的定义和分类&#xff…

打造新质生产力,亚信科技2024年如何行稳致远?

引言:不冒进、不激进,稳扎稳打, 一个行业一个行业地深度拓展。 【全球云观察 | 科技热点关注】 基于以往“一巩固、三发展”的多年业务战略,亚信科技正在落实向非通信行业、标准产品、软硬一体产品和国际市场的“四…

SpringBoot实战(二十七)集成WebFlux

目录 一、WebFlux1.1 定义1.2 WebFlux 与 Spring MVC 区别 二、代码实现2.1 Maven 配置2.2 暴露 RESTful API 接口的方式方式一:基于注解的控制器方式二:函数式路由器(Functional Endpoints) 2.3 测试Service2.4 测试ServiceImpl2…

c语言(动态内存管理函数)

1. 为什么要有动态内存分配 我们已经掌握的内存开辟⽅式有: int arr[10] {0}; char a; 但是上述的开辟空间的⽅式有两个特点: 但是上述的开辟空间的⽅式有两个特点: • 空间开辟⼤⼩是固定的。 • 数组在申明的时候,必须指…

vmare17 安装不可启动的iso镜像系统

由于要测试一个软件,要安装一个Windows11_InsiderPreview_Client_x64_zh-cn_26058.iso 于是在虚拟机里捣鼓一下。但是这个iso好像不能直接启动 这样就无法直接安装了,怎么办呢,可以先用个pe系统引导进去,再在PE系统里安装这个iso…

可观测性平台如何助推保险行业数智化转型与升级

近日,主题为“人工智能大模型应用与保险业信创建设”的华东地区保险业IT微沙龙在江西圆满落幕。活动汇聚了众多保险行业的信息技术领军人物,他们为行业的科技创新与转型发展提供了重要的思路与方向。博睿数据作为中国IT运维监控和可观测性领域领导者受邀…

AES,DES

AES加密过程 初始轮(Initial Round): 将明文分组与初始轮密钥(Round Key)进行XOR运算。轮运算(Rounds):AES算法中的加密运算是由多轮执行的,每一轮都包含四个基本步骤&…

LLaVA: Large Language and Vision Assistant 图片解析

LLaVA: Large Language and Vision Assistant 图片解析 目录 介绍 效果 ​编辑项目 测试代码 Form1.cs Helper.cs 下载 介绍 LLaVA,一种新的大型多模态模型,称为“大型语言和视觉助手”,旨在开发一种通用视觉助手,可以遵…

智慧矿山新趋势:大数据解决方案一览

1. 背景 随着信息技术的快速发展和矿山管理需求的日益迫切,智慧矿山作为一种创新的矿山管理方式应运而生。智慧矿山借助先进的信息技术,实现对矿山生产、管理、安全等各方面的智能化、高效化、协同化,是矿山行业转型升级的必然趋势。 欢迎关…

电子版合同的法律地位-复制品还是替代品?

电子合同与电子版合同并不完全等同,它们之间存在一些关键的区别。以下是对两者的专业解读: 电子合同 定义:电子合同是指完全以电子形式存在的合同,双方或多方通过电子设备进行协商、签署和履行。它不依赖于纸质文件,…

Java基于微信小程序的二手交易系统的实现(V2.0)

博主介绍:✌Java徐师兄、7年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、Python 技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅&#…

#Linux(文件系统概念)

(一)发行版:Ubuntu16.04.7 (二)记录: (1)查看文件系统情况df,man df查看df命令的功能 (2)查看文件系统的类型 df-T (3)df …

前端开发经验分享:写页面时总是有预期之外的滚动条怎么办?

问题描述: 在制作一个页面时常常会出现一些预期之外的滚动条,一般有以下原因:1.内容过多:当容器内的内容(如文本、图片等)的总高度或总宽度超过容器的可视区域时,滚动条就会出现。2.样式设置&a…

Android Handler使用介绍

Android 中的 Handler 是用来和线程通信的重要工具。它主要用于在后台线程中执行任务,并将结果传递回主线程以更新用户界面。 一、基本概念 线程间通信: Android 应用通常具有主线程(也称为 UI 线程)和后台线程。Handler 允许您从…