java web在linux环境下上传文件出现的一些问题

本文记录了在Windows环境下开发的文件上传和下载功能移植到Linux环境时遇到的问题及解决办法,包括调整路径获取方式、处理不同操作系统路径分隔符差异及解决数据库表名大小写敏感问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天做了一个文件的上传和下载功能,在win环境下测试没有问题,但是项目打包发布到linux时就出现了各种问题。记录一下出现的问题和解决方案。

使用的server服务器是tomcat,数据库是mysql。


首先,我在win环境下上传路径设置的是request.getSession().getServletContext().getRealPath("\\")+File.separator;这样设置在win环境下是没有问题的,但是一旦放到linux时,getRealPath()是不起作用的,调用它返回的是null。应该改用 getResource(),而我选择在linux里新建一个目录,专门存放这些上传的文件,所以也可以直接将上传路径改为绝对路径,比如:/usr/local/File,同时需要注意的是,win环境下使用的分隔符是\,而linux使用的是/,所以应该使用File.separator,避免出现因为环境改变而出现的问题。


然后在读取数据库时又遇到了麻烦,提示我找不到对应的数据表,看了一下,发现是因为mysql数据库在win里默认是不区分大小写的,而在linux里是默认区分大小写的(但是列明和列的别名又不区分大小写 ),就是说区分大小写的有:

1.数据库名

2.表名

3.变量名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值