SpringBoot部署项目到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/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;@Overrideprotected 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);}
}

附加上上传文件配置

package com.Config;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;@Beanpublic 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/uploadstaticAccessPath: /Users/zlf/myBlog/upload/# 本地路径 /Users/zlf/myBlog/uploaduploadFolder: /Users/zlf/myBlog/upload/

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

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

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

相关文章

Android权限Uri.parse总结

Android权限Uri.parse的详细资料刚整理了份Android权限Uri.parse的资料1,调web浏览器Uri myBlogUri Uri.parse("http://xxxxx.com");returnIt new Intent(Intent.ACTION_VIEW, myBlogUri);2,地图Uri mapUri Uri.parse("geo:38.899533,…

一起玩Docker之1——Ubuntu配置安装Docker运行环境并安装(Ubuntu、Centos)镜像

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制&am…

SpringBoot执行器端点Actuator Endpoint

比较常用的Endpoint URL作用/actuator/health健康检查/actuator/beans查看容器中所有的Bean/actuator/mapping查看Web的URL映射/actuator/env查看环境信息 默认/actuator/health和/actuator/info是可以通过Web访问,其他的需要解禁 在配置文件中可以设置可以访问哪…

EOF标准输入

Linux中,在新的一行的开头,输入Ctrl-d,就代表EOF(如果在一行的中间按下Ctrl-d,表示输出“标准输入”的缓存区,这时需要按两次)。另外Ctrl-z表示中断进程,在后台挂起,用fg…

玩玩机器学习3——TensorFlow基础之Session基本运算、占位符和变量的使用

通过TensorFlow的矩阵和常量的"加减乘除"运算,讲一下Session、变量以及占位符的使用 目录 Session创建会话与运算 变量的使用 占位符的使用 Session创建会话与运算 #session的使用,介绍两种启动Session的方式,进行矩阵乘法运算…

域内禁止不明东西连接DHCP

今天在Windows论坛看到一大牛版主分享的经验,赶紧挺好,就赶紧记下来。 http://bbs.51cto.com/thread-967999-1.html 再补充一点点 域内查看其他pc的 MAC 地址 同一网段的 直接 ping一下 对方 ip地址 然后 arp -a 一下 不通网段的 可以先在 dhc…

SpringBoot中mybatis配置多数据源

首先需要创建多个数据库 简单的user表 CREATE TABLE user (id int NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,age int DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT2 DEFAULT CHARSETutf8;导入项目依赖 <dependencies><dependency&g…

玩玩机器学习4——TensorFlow基础之激活函数

激活函数&#xff08;activation function&#xff09;运行时激活神经网络中某一部分神经元&#xff0c;将激活信息向后传入下一层的神经网络。神经网络之所以能解决非线性问题&#xff08;如语音、图像识别&#xff09;&#xff0c;本质上就是激活函数加入了非线性因素&#x…

centos更改MySQL数据库目录位置

http://barrelfish.blog.163.com/blog/static/130650826201010204911893/ MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步&#xff1a;1、home目录下建立data目录cd /homemkdir data2、把MySQL服务进程停掉&#xff1a; mysqladm…

玩玩机器学习5——构造单层神经网络解决非线性函数(三次函数)的曲线拟合

使用TensorFlow构造了一个隐藏层和输出层的神经网络&#xff0c;做非线性曲线的拟合 import tensorflow as tf import matplotlib.pyplot as plt import numpy as npnp.random.seed(1) x np.linspace(-1, 1, 100)[:, np.newaxis] #创建一个新维度 noise np.random.normal(0,…

分享:假如浏览器和搜索引擎不再支持外部链接跳转,优化何去何从呢?

分享&#xff1a;假如浏览器和搜索引擎不再支持外部链接跳转&#xff0c;优化何去何从呢&#xff1f; 当我们的浏览器和搜索引擎不再支持外部链接跳转&#xff0c;我们的优化何去何从呢&#xff1f; 其实这是一个假设。 如果真有那么一天。 那么&#xff0c;搜索引擎也许只要…

HTML网页使用CDN的jquery.qrcode.min.js生成页面二维码(直接可以复制使用)

HTML页面代码 <!DOCTYPE html> <html> <head><title></title><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><meta name"generator" content"pandoc" /><meta n…

Shiro 整合 SpringBoot

Shiro 整合 SpringBoot shiro主要有三大功能模块 Subject&#xff1a;主体&#xff0c;一般指用户。 SecurityManager&#xff1a;安全管理器&#xff0c;管理所有Subject&#xff0c;可以配合内部安全组件。(类似于SpringMVC中的DispatcherServlet) Realms&#xff1a;用于…

centos安装php7编译

centos7下安装php7 php7 centos7 安装PHP7 首先安装一些必须的依赖&#xff0c;这里就不阐述了&#xff0c;后面文章再细说 yum install -y \ gcc-c autoconf \ yum -y install postgresql-devel\ libjpeg libjpeg-devel libpng \ libpng-devel freetype freetype-devel \ li…

SpringBoot Web 入门

SpringBoot Web 要解决的问题&#xff1a; 导入静态资源首页模板引擎 Thymeleaf装配扩展SpringMVCCRUD拦截器国际化 SpringMVC的自动配置类为WebMvcAutoConfiguration &#xff0c;对应的properties类为WebMvcProperties //WebMvcProperties部分代码 //在application配置文…

CentOS7搭建ftp服务器(vsftpd,亲测成功)

安装vsftpd sudo yum install vsftpd 配置参数 命令行输入 vim /etc/vsftpd.conf 使用如下配置 # Example config file /etc/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daem…

handler类型的定时器

2019独角兽企业重金招聘Python工程师标准>>> 一、采用Handle与线程的sleep(long)方法 Handler主要用来处理接受到的消息。这只是最主要的方法&#xff0c;当然Handler里还有其他的方法供实现&#xff0c;有兴趣的可以去查API&#xff0c;这里不过多解释。 1. 定义…

Vue路由基本操作

路由index.js import Vue from vue import VueRouter from vue-router import Home from ../views/Home.vue import Me from ../views/me.vue import About from "../views/About.vue" import Centor from "/views/Center.vue" import _404 from "..…

Windows 10 搭建Python3 安装使用 protobuf

Windows 10 搭建Python3 安装使用 protobuf Protobuf对比XML、Json等其他序列化的优势 protobuf 不管是处理时间上&#xff0c;还是空间占用上都优于现有的其他序列化方式。内存暂用是java 序列化的1/9&#xff0c;时间也是差了一个数量级&#xff0c;一次操作在1us左右。缺点…

如何用PS的样式制作图片椭圆形边框

制作过程&#xff1a; 1&#xff09;点击文件→新建&#xff0c;画布尺寸按需&#xff0c;背景白色。 2&#xff09;点击形状工具→椭圆形工具&#xff0c;画一椭圆&#xff0c;位置居中大小按需。 3&#xff09;选择样式&#xff0c;本例如图1 4&#xff09;点击选框工具→椭圆…