【Java】服务器文件存储问题

问题:

服务器重新部署war包后,项目下上传到服务器的图片会丢失

解决方法:

通过tomcat虚拟目录来实现上传文件的分开存储,通过对服务器类型的判断来指定上传路径。

Java判断服务器操作系统类型,用来区分本地测试上传路径和服务器上传路径:

String imageDir = "/images/upload/";
//判断本地windows还是服务器linux
String os = System.getProperty("os.name");
String directory = imageDir;
if(os.toLowerCase().startsWith("win")){
    directory = request.getSession().getServletContext().getRealPath(imageDir);
}

修改tomcat的server.xml,<Host>中添加

<Context path="/images/upload" docBase="/images/upload" debug="0" reloadable="true"/>

这样就可以吧图片存储在服务器的/images/upload路径,通过/images/upload/1.jpg来获取图片了

以上方法可以解决腾讯云的问题,本地的IDEA和新浪云,启动tomcat的方式不像手动启动服务器一样,server.xml的修改都不太好用,还是需要对专门的服务器来确定对应存储方式,类似新浪云应该用他的Storage。
以后需要了解更多其他方式的存储,或者考虑图片直接base64存数据库什么的。

原文地址:https://www.cnblogs.com/Locked-J/p/7111250.html