使用SpringBoot设置虚拟路径映射绝对路径

目录
  • SpringBoot 设置虚拟路径映射绝对路径
    • 下面我们就来代码实现下
  • springboot打war包图片的虚拟路径映射
    • 在html图片的路径如图
    • 然后要映射到阿里云Linux服务器上路径
    • 映射方法
    • 在Host节点加上下面的
    • 这里顺便放上后台接收上传头像的代码

SpringBoot 设置虚拟路径映射绝对路径

上传图片到本地路径,得到的是一个绝对路径例如:D:\picpath\O48681516429132485.png

但是前台需要的数据是这样的 :http://localhost:8082/image/O48681516429132485.png

那么就要设置虚拟路径 /image/ = D:\picpath\ 了,

下面我们就来代码实现下

作为一个负责任的程序员,我把包也给你们复制过来了。

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

/**
 * 图片绝对地址与虚拟地址映射
 */

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
//文件磁盘图片url 映射
//配置server虚拟路径,handler为前台访问的目录,locations为files相对应的本地路径
registry.addResourceHandler("/image/**").addResourceLocations("D:\\picpath\\");
  }
}

是不是很简单呢?

springboot打war包图片的虚拟路径映射

这里我将自己学习的项目为例子作个简单的记录:

在html图片的路径如图

这里是头像路径的映射

然后要映射到阿里云Linux服务器上路径

注意,这两个路径是不同的,只是同名而已,HTML那里的路径可以随便修改,到最后映射到这个路径就可以,当然映射到别的路径也可以

映射方法

找到tomcat下的config下的server.xml文件

在Host节点加上下面的

前面是path是虚拟路径,对应的是HTML那里的代码,后面是真实路径,对应Linux上面真实路径

这里顺便放上后台接收上传头像的代码

@ResponseBody
    @RequestMapping("uploadImage")
    public DataGridView uploadImage(MultipartFile file, HttpSession session) throws Exception {
        DataGridView dataGridView = null;
        if (!file.isEmpty()){
            String filename = file.getOriginalFilename(); //abc.jpg
            String suffix = filename.substring(filename.lastIndexOf(".")); //后缀 如abc.jpg,就是jpg
            String newFileName = DateUtil.getCurrentDateStr() + suffix;  //新文件名
            FileUtils.copyInputStreamToFile(file.getInputStream(),new File(userImageFilePath+newFileName));
            Map<String,Object> map= new HashMap<>();
            map.put("src","/project/userImages/"+newFileName);
            map.put("title",newFileName);
            dataGridView = new DataGridView(0, "上传成功", map);
            User currentUser = (User) session.getAttribute("currentUser");
            currentUser.setImageName(newFileName);
            userService.save(currentUser);
            session.setAttribute("currentUser",currentUser);
            System.out.println("执行完了");
        }
        return dataGridView;
    }

顺便说下war包放到阿里云服务器上路径映射(域名或者IP直接访问项目根路径):

<Context path="/" docBase="/home/tomcat/apache-tomcat-8.5.45/webapps/code007" debug="0" reloadable="true"/>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 使用springboot访问图片本地路径并映射成url

    目录 springboot访问图片本地路径并映射成url 增加一个配置类: 运行该工程: SpringBoot设置url访问本地图片 创建WebMvcConfig配置类 springboot访问图片本地路径并映射成url springboot如何访问本地路径并获取图片等静态资源文件的url?代码写法如下: 增加一个配置类: @Configuration public class WebMvcConfigurer extends WebMvcConfigurer { @Override publi

  • springboot文件虚拟路径映射方式

    目录 springboot文件虚拟路径映射 在application.properties配置文件中配置 springboot 配置文件虚拟路径 供外部访问 第一步:配置application.yml 第二步:添加 Configuration 文件 重启 springboot文件虚拟路径映射 在application.properties配置文件中配置 spring.http.multipart.location= D:/ spring.mvc.static-path-pattern=/** s

  • SpringBoot图片上传和访问路径映射

    简介 做移动端对接,框架用的SpringBoot,接口RESTful,实现一个图片上传功能,图片上传是个经典的应用场景了,完成后,做个笔记记录一下,希望能帮到攻城狮们 开发步骤 1.先贴图片上传工具类 package com.prereadweb.utils; import java.io.File; import java.io.FileOutputStream; import java.util.UUID; /** * @Description: 文件工具类 * @author: Yangx

  • SpringBoot路径映射实现过程图解

    这篇文章主要介绍了SpringBoot路径映射实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 当然这个功能并非是springboot特有的,只是springboot提供了更简便的方法以供使用. 传统情况下我们跳转一个动态页面且并没有数据,也需要在controller中写一个跳转的controller. 也就是下面情况 这个时候我们就可以使用springboot的路径映射 我们只需要创建一个WebMvconfig类实现WebMvcCo

  • 使用SpringBoot设置虚拟路径映射绝对路径

    目录 SpringBoot 设置虚拟路径映射绝对路径 下面我们就来代码实现下 springboot打war包图片的虚拟路径映射 在html图片的路径如图 然后要映射到阿里云Linux服务器上路径 映射方法 在Host节点加上下面的 这里顺便放上后台接收上传头像的代码 SpringBoot 设置虚拟路径映射绝对路径 上传图片到本地路径,得到的是一个绝对路径例如:D:\picpath\O48681516429132485.png 但是前台需要的数据是这样的 :http://localhost:808

  • Servlet虚拟路径映射配置详解

    ​在上一篇中我们初识了Servlet,相信大家对Servlet也都有了些了解,知道了如何创建一个Servlet,并且为其添加虚拟映射,最终发布项目,并在浏览器上请求对应的Servlet. ​我们知道,只有给Servlet配置好虚拟路径,客户端才可以进行访问,但是对于Servlet的路径映射,真的只有现在所知的这么简单么? ​答案当时是No了,不然怎么会有这篇文章

  • Tomcat7.0设置虚拟目录配置虚拟路径的方法讲解

    Tomcat7.0设置虚拟目录 (1)目前,我们的网站站点都是放在默认的目录下:tomcat/webapps/下的.但是,在某种情况下,我们需要把站点放到其他的目录,比如:tomcat所在磁盘的空间不足: 或者为了项目的统一管理,希望放在某个特定的目录下而不是默认的目录. (2)那么我们就是用今天的方法解决这个问题(同样是修改config/server.xml文件): (3)按照下边的图片找到server.xml文件(config-----server.xml记事本打开即可) (4)打开之后拉到

  • Springboot设置默认访问路径方法实现

    前言 当使用springboot与其他框架结合编写web前后端时,可能存在这样的需求:我想在访问10.10.10.100时,实际上需要访问10.10.10.100/hello页面.(端口已省略,自行设置) 解决 方案1 - 实现WebMvcConfigurer接口 搜过很多博客,里面的内容虽然可以用.但是基本上都是基于继承WebMvcConfigurerAdapter类实现的,而官方的源码里面已经不推荐使用该类了. 下面给出我的解决方案,很简单: import org.springframewo

  • SpringBoot重写addResourceHandlers映射文件路径方式

    目录 重写addResourceHandlers映射文件路径 在此记录以下 配置本地资源映射路径addResourceHandlers 成功访问如下 重写addResourceHandlers映射文件路径 在看一个博客源码发现页面的图片所映射的地址在SpringBoot静态资源文件夹下找不到原來在这里是通过下面这段代码,将/store/**地址映射为getStorePath()得到的地址 在此记录以下 registry.addResourceHandler("/store/**").a

  • SpringBoot Web开发之系统任务启动与路径映射和框架整合

    目录 本章概要 启动系统任务 CommandLineRunner ApplicationRunner 整合Servlet与Filter和Listener 路径映射 本章概要 启动系统任务 整合 Servlet.Filter 和 Listener 路径映射 启动系统任务 有一些特殊的任务需要在系统启动时执行,例如配置文件加载,数据库初始化等操作.如果没有使用 Spring Boot ,这些问题可以在 Listener 中解决.Spring Boot 对此提供了两种解决方案 CommandLineR

  • Spring boot文件路径映射配置代码实例

    springboot配置本地资源映射路径需要配置一下映射资源位置,下面来介绍一下过程. 1.添加配置类 package org.jcut.tools; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.servlet.config.annotation.ResourceH

随机推荐