request.getRealPath("/")在Linux下获取路径的问题

来源:互联网 发布:网络销售游戏是诈骗吗 编辑:程序博客网 时间:2024/05/16 07:22

问题描述:

程序中用了一段代码动态在应用根目录下,动态创建一个文件夹,用于存储临时文件,代码如下:

InputStream in=null;       File file = new File(request.getRealPath("/")+ File.separator+"report" + File.separator+"files" + File.separator + filename);       in=new FileInputStream(file);       int i;       while ((i=in.read())!=-1) {           response.getOutputStream().write(i);       }       in.close();

在Windows服务器运行正常,但在Lunix服务器下,却无法生成文件夹。

原因分析:

request.getRealPath("/") 在window获取的是服务器的根目录,结尾包含分隔符,

如E:\apache-tomcat-7.0.52\webapps\zj\

在Linux下获取的不含分隔符,如:

/home/ecm/server1/apache-tomcat-7.0.52/webapps

 建议:

 request.getRealPath() 方法已经不推荐使用,推荐使用 request.getSession().getServletContext().getRealPath("/");

0 0