Java上传或下载文件路径存储数据库注意事项

数据库中存储全路径易造成读取文件为空

​ 我们使用java下载或上传文件,文件路径一般都是保存在数据库中,如在数据库中建一张和此文件相关的表,其中包含文件路径字段。

​ 我们上传或下载文件的时候一般都是使用绝对路径,如: D:/files/img1.png,而且我们在数据库中也直接把这整个绝对路径存储在里面了。

​ 这就可能导致文件读取是因路径问题导致读取出来的文件为空。

​ 特别是磁盘挂载后,很容易造成读取、下载出来的文件内容是空的。

​ 注:磁盘挂载

原因

​ 当我们上传和下载的方法不在同一个服务器上的时候,我们上传的路径可能是 D:/files/Apk/线上4_8.apk ,并且保存在数据库中:

打开结构目录

我们下载时读取的是数据库中的绝对路径,从数据库中得到了文件所在路径为D:/files/Apk/线上4_8.apk ,但是下载接口在另外一台服务器上,我们采用了磁盘挂载后,在下载接口所在服务器访问上传的文件所在的路径为Z:/Apk/线上4_8.apk,

打开结构目录

当我们下载时,下载接口读取的路劲为D:/files/Apk/线上4_8.apk ,实际需要为Z:/Apk/线上4_8.apk,所以造成了下载的文件为空。

解决方案

  1. 改数据库存储:

​ 数据库中存放的文件路径为文件名称,或者文件夹+/+文件名称

打开结构目录

  1. 改java后台路径获取代码

    我们将绝对路径的盘符放在配置文件中,当我们读取、上传、下载的时候从配置文件中获取盘符,将盘符和文件名一起组成绝对路径

    如:配置文件添加属性 uploadApk

    打开结构目录

    打开结构目录

    修改前上传保存数据库java代码:

    打开结构目录

    修改后上传保存数据库java代码:

    打开结构目录

    修改前下载java代码:

    打开结构目录

    修改后下载java代码:

    打开结构目录

    这样我们读取、下载时获取的路径就是Z:/Apk/线上4_8.apk

  2. 配置文件修改

    我们在部署项目的时候,只需要将上传文件项目部署时将配置文件修改为

    打开结构目录

    下载文件项目部署时修改配置文件修改为

    打开结构目录

  3. 成功获取正确的文件!

最后更新: 2020年06月02日 09:45

原始链接: http://ligangit.com/2020/04/09/java数据库保存文件路径注意事项/

× 请我吃糖~
打赏二维码