使用项目相对路径上传到话会上传到linux服务器到/tmp 临时文件目录中,但是问题是还会报异常

Caused by: java.io.FileNotFoundException: /tmp/tomcat.8223985333111777969.80/work/Tomcat/localhost/ROOT/file:/project/myblog-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static/img/User/v2-3e1d742d3d2a98cbf122b3414ceb29e7_720w.jpg (No such file or directory)

如上述到异常。

使用绝对路径

1、但是我们知道服务器访问时是访问服务器url ,所以我们要用url映射到绝对路径中。

package com.Config;
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.WebMvcConfigurationSupport;
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    @Value("${file.staticAccessPath}")
    private String staticAccessPath;
    @Value("${file.uploadFolder}")
    private String uploadFolder;
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
       registry.addResourceHandler("/img/**").addResourceLocations("classpath:/static/img/");
       registry.addResourceHandler("/css/**").addResourceLocations("classpath:/static/css/");
       registry.addResourceHandler("/js/**").addResourceLocations("classpath:/static/js/");
       registry.addResourceHandler("/editor.md-master/**").addResourceLocations("classpath:/static/editor.md-master/");
       // 配置 服务器上的地址 localhost:8080/Users/zlf/myBlog/upload/ 映射到本地linux/Mac  /Users/zlf/myBlog/upload/ (需要在前面加 file:)
       registry.addResourceHandler(staticAccessPath+"**").addResourceLocations("file:"+uploadFolder);
       super.addResourceHandlers(registry);
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;
import javax.servlet.MultipartConfigElement;
@Configuration
public class UploadFileConfig {
    @Value("${file.uploadFolder}")
    private String uploadFolder;
    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation(uploadFolder);
        //文件最大
        factory.setMaxFileSize(DataSize.parse("5MB"));
        // 设置总上传数据总大小
        factory.setMaxRequestSize(DataSize.parse("10MB"));
        return factory.createMultipartConfig();

application.yaml

file:
  # 服务器上的地址 localhost:8080/Users/zlf/myBlog/upload
  staticAccessPath: /Users/zlf/myBlog/upload/
  # 本地路径 /Users/zlf/myBlog/upload
  uploadFolder: /Users/zlf/myBlog/upload/

这样我们存储图片文件时就存储在linux的绝对路径就行,访问服务器时服务器会自动映射。

SpringBoot部署项目到Linux上传文件路径问题使用项目相对路径上传到话会上传到linux服务器到/tmp 临时文件目录中,但是问题是还会报异常Caused by: java.io.FileNotFoundException: /tmp/tomcat.8223985333111777969.80/work/Tomcat/localhost/ROOT/file:/project/myblog-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static/img/Use
自己把图片存储到Linux上指定的文件夹下面,想通过URL直接进行访问,参考了一下其他人的内容,发现有很多坑,这里重新整理一下,希望能帮助到遇到类似需求的同学,减少不必要的时间,提高效率! 主要是设置两个地方: ①spring.mvc.static-path-pattern: /** 主要是用来设置静态资源访问的URL,默认是此设置,访问静态资源可以通过: ip:端口/项目名/静态资源名 进行访问;如果配置/static,则静态资源的访问路径是:项目名/static/静态资源 ②spring.res
@PostMapping("/uploadAndSaveFile") public String uploadAndSaveFile(MultipartFile file) throws IOException { // 获取根路径 String dir = System.getProperty("user.dir"); // 获取文 摘要:今天第一次部署成功了vue+springboot项目,记录下在部署的过程中遇到的问题,该篇博客用来记录springboot中配置的虚拟路径部署linux服务器中该如何修改的问题项目开发中总会需要访问服务器上的文件,配置虚拟路径,可以将本机的其它路径的文件目录映射到你设置的路径上,以便于你访问其中的文件 这里默认你懂得如何去设置虚拟路径 如下的config类中设置一个资源访问路径(upload),映射的本地路径是:C盘下的Pic目录。(注意:末尾一定要有/) 这个时候如果你在本机访问 安装 CentOS7 虚拟机 需要预先安装好一个 CentOS 虚拟机系统,网上有很多教程,随便搜一个“安装 CentOS7 虚拟机” 这里我还有一个多节点环境的基础配置的文章,可以用来模拟前后端分离项目的配置的环境:虚拟机配置Linux多节点的学习环境 安装好后强烈建议你使用外部的 ssh 软件连接到虚拟机中,比如 SecureCRT, XShell,这样使用界面以及操作起来都比较舒服。 安装 jdk1.8 yum -y install java-1.8.0-open. 从windows上传文件linux, 首先linux需要先切换到想要保存文件的目录下, 然后在找到windows中文件所在的目录, 最后使用 put 命令就能上传上去了 第一步: 使用 ls 命令查看linux当前目录下的目录 第二步: 使用 cd 命令进入... CSDN-Ada助手: 非常感谢您分享关于WPF数据绑定和资源字典的博客!这些都是WPF开发中非常重要的知识点。我们期待您继续分享更多类似主题的技术文章,比如可以写一篇关于WPF的控件模板和样式,或者是WPF中MVVM设计模式的实现方法等等。期待您的精彩分享! 2023年博客之星「城市赛道」年中评选已开启(https://activity.csdn.net/creatActivity?id=10470&utm_source=blog_comment_city ), 博主的原力值在所在城市已经名列前茅,持续创作就有机会成为所在城市的 TOP1 博主(https://bbs.csdn.net/forums/blogstar2023?typeId=3152981&utm_source=blog_comment_city),更有丰厚奖品等你来拿~。 JavaScript实现数据分页 笨笨2333: 写得好,对于小白我很实用,但有一处错误。分页的时候,无论是第一页还是后面的页,尾标签(end)都应减一,所以不用单独把第一页else出来了 使用Jenkins从gitlab拉取代码并部署以及gitlab更新代码后自动构建 StudyHappiness: 解决了吗?有什么思路吗 OpenGL 自定义着色器(Shaders) 应如是呀: 请问这个报错是什么导致的呢