最近写Javaweb项目时遇到了一个坑,本地服务器进行测试时没有什么异常,但将war包部署到服务器上并进行文件上传时遇到了一些问题:文件上传后找不到。

仔细检查后我发现原本准备上传至WEB-INF\aaa文件夹下的文件直接在主目录下生成了以文件夹命名的文件。

原来是因为Windows下的路径用反斜杠“\”表示,而Linux下的路径用斜杠“/”表示,而我的所有路径分隔符都是是用反斜杠表示才产生了这种问题;

为了解决这个问题可以把“\”全部换成“/”,但这样做的话Windows下又会出现问题。

为了兼容性考虑Java提供了一个方法File.separator能根据系统的不同获取文件路径的分隔符。将用到分隔符的地方全部替换为File.separator,测试成功。

完结,撒花!!


评论