解决web项目对Linux服务器上传文件路径的问题

        昨天将一个JavaWeb项目部署到linux服务器上,对功能进行了一个测试,其中有一个文件上传的功能。在win环境下测试没有任何的问题,文件能够上传和下载,但是在Linux下就有问题了,文件上传时候的路径出现了差错,没有上传的指定的文件夹.

文件上传的代码在win环境下的代码为

String path = ServletActionContext.getServletContext().getRealPath("/");
String  absolutePath=path + "\\uploadzc\\"+ getUploadFileName();

也就是通过相对路径上传到项目目录下的WebRoot目录下的uoloadzc文件夹,改代码在win环境下确实有效,但是在Linux下就不一样了。

是因为win环境和Linux环境下的目录分隔符不同。

java在Windows下的路径分隔符为反斜杠即‘\’。
代码中需要有转义符,例如:

String path = “D:\\tmp”;

java在Linux下的路径分隔符为正斜杠即’/’
代码中无需转义符,例如:

String path = “/data/tmp”;

所以文件路径的代码应该为:

        String path = ServletActionContext.getServletContext().getRealPath("/");
        String  absolutePath=path + "uploadzc\"+ getUploadFileName();

注意:上面uploadzc前面没有正斜杠,具体原因我也不知道为什么,经过打印路径发现加了正斜杠会出现两个斜杠

猜你喜欢

转载自blog.csdn.net/wilson_m/article/details/80924636