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

23 篇文章 1 订阅
3 篇文章 0 订阅

        昨天将一个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前面没有正斜杠,具体原因我也不知道为什么,经过打印路径发现加了正斜杠会出现两个斜杠

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值