
SpringBoot部署项目到Linux上传文件路径问题
发布日期:2021-05-04 20:40:37
浏览次数:43
分类:精选文章
本文共 2758 字,大约阅读时间需要 9 分钟。
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;@Configurationpublic 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); }}
附加上上传文件配置
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;@Configurationpublic 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的绝对路径就行,访问服务器时服务器会自动映射。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月30日 11时28分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
2019-03-05
用 wxPython 打印你的 App
2019-03-05
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
2019-03-05
android:使用audiotrack 类播放wav文件
2019-03-05
聊聊我的五一小假期
2019-03-05
LeetCode:28. 实现 strStr()——————简单
2019-03-05
Lionheart万汇:布林线双底形态分析技巧
2019-03-05
数据库三个级别封锁协议
2019-03-05
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
2019-03-05
Java求逆波兰表达式的结果(栈)
2019-03-05
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
2019-03-05
SLAM学习笔记-求解视觉SLAM问题
2019-03-05
普歌-允异团队-HashMap面试题
2019-03-05
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
2019-03-05
程序员应该知道的97件事
2019-03-05
create-react-app路由的实现原理
2019-03-05
Linux环境变量配置错误导致命令不能使用(杂谈)
2019-03-05
openstack安装(九)网络服务的安装--控制节点
2019-03-05
shell编程(六)语言编码规范之(变量)
2019-03-05