2012-12-19 131 views
2

我在java中有一个fileupload servlet。我想设置上传文件夹的路径,以便在任何服务器上使用。我说:如何获取Java Web应用程序路径?

File disk = new File("/myportlet/upload/"+item.getName()); 
item.write(disk); 

但没有保存。当我使用绝对路径上传文件夹时一切正常。
那么如何设置路径在服务器上传文件夹呢?

+3

你应该知道你想要在服务器内写入,违反了servlet规范。 –

+0

你可以试试getContextPath() –

+1

看看路径。如果小程序在Linux上运行,则第一个斜杠会将您设置为根。尝试使用'。/ myportlet/upload /' – looper

回答

2

构造函数​​的前导“/”引用文件系统的根。该文件将被写入名为/myportlet/upload的目录中,在您的代码中。

正如评论所暗示的,写入应用程序服务器内部的目录违反了规范,通常是一个可怕的想法 - 我真的无法想到这样做的正确用法。你想要做的是从参数中读取目标路径 - 例如,一个servlet的初始化参数或一个上下文初始化参数 - 并使用它。

+0

'servlet的初始化参数或上下文初始化参数 - 并使用它。“你能举个例子吗?我不擅长于Java。 –

+0

谷歌是你最好的朋友...... :-)看到这个例子:http://tutorials.jenkov.com/java-servlets/web-xml.html#initParams – Isaac

2

我用下面的代码片断。它在Windows Server中运行良好。

File f=new File("sample.xls"); 
     f.createNewFile(); 
     FileOutputStream fos=null; 
     if(f != null){ 
      fos=new FileOutputStream(f); 
      fos.write(b); 
      fos.flush(); 
      fos.close(); 
     } 
相关问题