问题描述:
程序中用了一段代码动态在应用根目录下,动态创建一个文件夹,用于存储临时文件,代码如下:
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("/");