我在java中有一个fileupload servlet。我想设置上传文件夹的路径,以便在任何服务器上使用。我说:如何获取Java Web应用程序路径?
File disk = new File("/myportlet/upload/"+item.getName());
item.write(disk);
但没有保存。当我使用绝对路径上传文件夹时一切正常。
那么如何设置路径在服务器上传文件夹呢?
我在java中有一个fileupload servlet。我想设置上传文件夹的路径,以便在任何服务器上使用。我说:如何获取Java Web应用程序路径?
File disk = new File("/myportlet/upload/"+item.getName());
item.write(disk);
但没有保存。当我使用绝对路径上传文件夹时一切正常。
那么如何设置路径在服务器上传文件夹呢?
构造函数的前导“/”引用文件系统的根。该文件将被写入名为/myportlet/upload
的目录中,在您的代码中。
正如评论所暗示的,写入应用程序服务器内部的目录违反了规范,通常是一个可怕的想法 - 我真的无法想到这样做的正确用法。你想要做的是从参数中读取目标路径 - 例如,一个servlet的初始化参数或一个上下文初始化参数 - 并使用它。
'servlet的初始化参数或上下文初始化参数 - 并使用它。“你能举个例子吗?我不擅长于Java。 –
谷歌是你最好的朋友...... :-)看到这个例子:http://tutorials.jenkov.com/java-servlets/web-xml.html#initParams – Isaac
我用下面的代码片断。它在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();
}
你应该知道你想要在服务器内写入,违反了servlet规范。 –
你可以试试getContextPath() –
看看路径。如果小程序在Linux上运行,则第一个斜杠会将您设置为根。尝试使用'。/ myportlet/upload /' – looper