java数据库保存文件路径注意事项

java数据库保存文件路径注意事项

问题记录–Java上传或下载文件路径存储数据库注意事项–2020年04月09日

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

我们使用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. 改数据库存储:

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

    打开结构目录

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

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

    如:配置文件添加属性 uploadApk

    打开结构目录

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

    打开结构目录

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

    打开结构目录

    修改前下载java代码:

    打开结构目录

    修改后下载java代码:

    打开结构目录

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

  3. 配置文件修改

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

    打开结构目录

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

    打开结构目录

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

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值