Tomcat配置绝对路径,使上传文件与服务器分离

遇到问题介绍:项目中文件上传,上传文件到服务器以后,如果使用tomcat下的目录作为上传文件的路径,则每次重启服务器文件将消失;

解决办法:首先想到的是存储到磁盘下面(例如:/Users/apple/Desktop目录下),这样即使服务器重新部署,文件也依然在磁盘上没有丢失;

1.首先在src目录下新建一个属性文件storage_directory.properties,方便与后期部署修改存储文件的路径,不需要在代码中修改,

文件中存储文件的绝对路径

#file storage directory

storage_directory=/Users/apple/Desktop

2.定义读取属性文件类,可以需要的时候读取也可以系统启动时在初始化类中加载出来绝对路径然后放到静态变量中存储,以便减少文件读取


3.存储时-获取服务器磁盘的绝对路径,web系统接收回来以后获取绝对路径通过fileOutputStream输出流存取文件,同时检测磁盘绝对目录是否存在,不存在则创建出来,然后写文件

// 获取服务器的绝对路径(真实路径)

    public static String getServerPath(HttpServletRequest request, String filePath) {

return PropertiesUtils.getValue(PropertiesUtils.FileStorageDir, PropertiesUtils.FileStorageDirKey)+filePath;

    }

//从响应头中读取文件写入磁盘

4.读取时-传过来文件存储的相对目录,获取文件绝路路径(磁盘目录+文件目录)通过BufferedInputStream
读取文件写入响应头即可(备注:因为需要读取文件以后再header添加相应处理,所以未采用虚拟目录读取的方式)

// 获取服务器的真实路径

        String realPath = PropertiesUtils.getValue(PropertiesUtils.FileStorageDir, PropertiesUtils.FileStorageDirKey)+filePath;

//读取文件

//写入响应头response



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值