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的绝对路径就行,访问服务器时服务器会自动映射。

SpringBoot部署项目到Linux上传文件路径问题相关推荐

  1. SpringBoot整合阿里云OSS上传文件

    一.需求分析 文件上传是一个非常常见的功能,就是通过IO流将文件写到另外一个地方,这个地方可以是项目下的某个文件夹里,或者是本地电脑某个盘下面,还可以是云服务OSS里面,这里就是我要讲到的OSS,我写 ...

  2. linux上传文件失败

    linux上传文件注意事项 一.刚开始上传失败. 1.我以为是没有安装lrzsz的缘故,所有我就用 "sudo yum install lrzsz  -y"指令去安装它(首先要先安 ...

  3. 普元 AppServer 6.5 将springboot应用部署到应用服务器,上传文件时报错:Caused by: org.springframework.web.multipart.Multipar

    [问题] springboot应用部署到应用服务器后,上传文件时报错: Caused by: org.springframework.web.multipart.MultipartException: ...

  4. SpringBoot设置全局上传文件路径并上传文件

    前言 在后端处理文件上传的时候,我们通上传文件的时候,一般这个路径不会随便写. 比如这篇文章中的路径:解决SpringBoot文件上传报错:org.apache.tomcat.util.http.fi ...

  5. linux上传文件权限命令,Linux 普通用户拿到root权限及使用szrz命令上传下载文件...

    1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...

  6. SpringBoot第十七篇:上传文件

    这篇文章主要介绍,如何在springboot工程作为服务器,去接收通过http 上传的multi-file的文件. 构建工程 为例创建一个springmvc工程你需要spring-boot-start ...

  7. Windows下使用xShell向远程Linux上传文件

    上传文件使用rz与sz命令,远程Linux系统上需要安装lrzsz工具包 下载安装包lrzsz-0.12.20.tar.gz:  http://www.linuxidc.com/Linux/2010- ...

  8. 企业级 SpringBoot 教程 (十七)上传文件

    这篇文章主要介绍,如何在springboot工程作为服务器,去接收通过http 上传的multi-file的文件. 构建工程 为例创建一个springmvc工程你需要spring-boot-start ...

  9. linux上传文件到服务器

    1.连接服务器 : ssh 用户名@ip地址 例如: unbutu@unbutu-System-Product-Name:~$ ssh root@123.57.235.11 root@123.57.2 ...

最新文章

  1. FPGA逻辑设计回顾(1)新手易犯的逻辑综合错误之always块
  2. cmakelists 常见用法
  3. python bool类型_Python 的内置数值类型
  4. python装饰器作用-如何理解Python装饰器?
  5. LBP(local binary pattern)
  6. c语言中ndigit用法,求C语言中头文件及函数的含意的总分类
  7. 东风畅行java_东风畅行载货车为何可以口碑很好吗?是配置高?或者另有原因?...
  8. java的可变参数介绍_Java基础 可变参数介绍(转载)
  9. 在Salesforce中以PDF的格式显示对应的页面
  10. 深度学习中收敛是什么意思?
  11. o(n)复杂度下实现数组去除重复项
  12. 双闭环直流调速系统的MATLAB的仿真,双闭环直流调速系统MATLAB仿真
  13. 一键进入高通9008模式_专属冬天的热饮,一键进入圣诞模式!
  14. Leetcode 1484题: Group Sold Products By The Date
  15. tps在区块链是什么意思_超百万的TPS拯救不了区块链技术,区块链还差什么?
  16. vm虚拟服务器无法启动,win10升级后vm虚拟主机无法启动的解决办法
  17. Mac:sh: /Users/lipan/Downloads/Django/node_modules/.bin/vue-cli-service: Permission denied
  18. (二十三)admin-boot项目之captcha验证码整合
  19. Codeforces Gym100543L Outer space invaders 区间dp 动态规划
  20. linux中ls ld,在linux中ls -ld 是什么意思

热门文章

  1. 看懂架构设计中的服务隔离
  2. WordPress数据表wp-options数据字段存JSON数据
  3. 这是一个UIImage集合类,可以很方便的对图片的染料(着色),增加亮度(闪电)和降低亮度(黑)和其他扩展的功能模块。...
  4. 【JUnit 报错】 method initializationerror not found:JUnit4单元测试报错问题
  5. uva 610(tarjan的应用)
  6. MRI骨水肿是早期未分化关节炎演变为RA的独立预测预测因素
  7. solaris下修改 IPMP 配置
  8. python中队列的应用用场景_消息队列应用场景
  9. 最新php常用函数200个,180多个PHP常用函数总结
  10. python可变参数函数二阶导数公式_Python中函数的参数定义和可变参数