【文件上传】——文件上传后需要重启服务器方可访问到异常
前言
今天在帮朋友看文件上传问题的时候,发现上传的文件虽然上传到本地路径或者项目文件下了,但是访问却访问不到,要重新启动项目才可以。
找了下网上的解决方案,不一而足,在此收集我试了可以用的方案
文件存储在编译文件下
按下面这个代码可以将文件存在编译文件下 ,也就是target/classes下面
String path = "/static/upload/"; File file1 = null; try {file1 = new File(ResourceUtils.getURL("classpath:").getPath()); } catch (FileNotFoundException e) {// nothing to do } if (file1 == null || !file1.exists()) {file1 = new File(""); }String savePath = file1.getAbsolutePath()+path;
不过这样并没有存储在项目下,所以项目如果clean一下那么这些文件将都会消失,不过对与某些项目来说只有开始和停止,也并没有重新部署的必要。
或者完全可以利用这一特点,存储临时文件,项目重新编译时文件消失。
配置访问虚拟路径
文件实际是存在e盘的path路径下面,但是当访问http://ip:port/upload/xxx.jpg时,虚拟路径会映射到file://e:/path/xxx.jpg的路径中访问文件。也是对服务器文件的一种保护措施吧.
启动类集成WebMvcConfigurationSupport
@SpringBootApplication public class DemoApplication extends WebMvcConfigurationSupport {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {System.out.println("config启动了");//项目路径//String savePath = "\\src\\main\\resources\\static\\upload\\";//String path = System.getProperty("user.dir")+savePath;//本地路径String path = "e:/path/";registry.addResourceHandler("/upload/**").addResourceLocations("file:"+path);} }
实现配置类WebMvcConfigurer
@Configuration public class MyPicConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {System.out.println("config启动了");//项目路径//String savePath = "\\src\\main\\resources\\static\\upload\\";//String path = System.getProperty("user.dir")+savePath;//本地路径String path = "e:/path/";registry.addResourceHandler("/upload/**").addResourceLocations("file:"+path);} }
【文件上传】——文件上传后需要重启服务器方可访问到异常相关推荐
- Linux上监控tomcat down掉后自动重启tomcat
Linux上监控tomcat down掉后自动重启tomcat 解决思路 Linux上监控tomcat down掉后自动重启tomcat 第一步编辑:monitor.sh文件(文件内容看下文) 第二步 ...
- 修改服务后 如何重启服务器,修改远程端口号后如何重启服务器
修改远程端口号后如何重启服务器 内容精选 换一换 本章节讲解如何通过Mind Studio界面的Device Management菜单管理设备信息.设备管理功能提供了增加.删除.修改等能力,方便使用者 ...
- 解决存储阵列无法挂载,或者挂载成功后,重启服务器后存储阵列又要重新挂载
环境:ubuntu18.04 问题:我要把存储阵列挂载到目录/public,但是这个目录无法挂载存储阵列,或者挂载成功后,重启服务器后存储阵列又要重新挂载,而挂载到其他目录就没有问题. 原因分析:/p ...
- 远程桌面连接不上,三种方法教你重启服务器
方法一:使用windows自带的shutdown命令,远程重启服务器 当远程桌面连接服务无法顺利使用后,我们首先要确定的是服务器是否真的死机.我们可以通过ping目标服务器IP看是否畅通或者访问该服务 ...
- vue打包后不使用服务器直接访问方法
根据官网打包执行npm run build 后dist文件夹打开的index.html 是空白 需要开启http服务器才能访问,以下是解决办法 1.找到config文件夹下的index文件 修改成 2 ...
- 将/etc/locale.conf文件修改为LANG=zh_CN.UTF-8后,重启or注销重新登录后失效
首先描述一下我的情况,我的启动界面是默认命令行界面,但是根据"Linux LANG变量设置:定义系统的主语系环境"这篇文章的描述: 我们需要解释一下 Linux 中文支持的问题.是 ...
- Esp8266的Flash读写操作以及Flash上传文件
1.Flash的读写操作 Esp8266的Flash为4M,其中1M用于存储程序,其他的空间有一部分用于系统,3M中剩下的大部分空间可以用来存放文件. #include <FS.h> St ...
- 阿里云轻量应用服务器 怎么控制怎么上传文件怎么安装JDK和Tomcat怎么完成JavaWeb的部署...
你是否遇到过这些问题,自己的javaweb项目本地运行一切正常,但是一旦转移到阿里服务器之类的.就出现以下问题. 1 jsp无法解析java类 2 Only a type can be importe ...
- 修改js文件需要重启服务器,关于Node.js中频繁修改代码重启服务器的问题
我们可以使用一个第三方命名行工具,nodemon 来帮我们解决频繁修改代码重启服务器问题. nodemon 是一个基于 Node.jsNode.js 开发的第三方命令行工具,我们使用的时候需要独立安装 ...
最新文章
- java 泛型反射_Java使用反射来获取泛型信息示例
- 登上更高峰!颜水成、程明明团队开源ViP,引入三维信息编码机制,无需卷积与注意力...
- IPv6 — 协议头
- quartz 报错:java.lang.classNotFoundException
- Springboot集成Shiro+Redis后,@Transactional注解不起作用
- Python编程:制作电子相册
- 让不带www的域名跳转到带www的域名
- windows phone 了解LinearGradientBrush类和RadialGradienBrush类(11)
- App测试的11点建议
- CSharp_DevExpress_DXperience_Universal_11.1.6 下载+源码+编译
- Sybase数据库整体迁移纪要
- LumaQQ开发文档
- Filter 实现图片转发
- Android开发:Shape详细解读
- MongoDB使用账号密码连接
- IT咨询和IT外包有什么区别?
- UI设计教程之常见的APP小图标类型以及用途梳理
- SAP ABAP OO ALV全屏显示
- git提交用户名与当前用户名不止一致(或者邮箱)
- 菲律宾的光伏市场只有一个字概况:穷