我使用GWT小部件上传我的文件,我想将它们上传到Ubuntu服务器上的tomcat文件夹下,所以我需要在web.xml中为这段代码设置param值:
<context-param>
<description>Location to store uploaded file</description>
<param-name>file-upload</param-name>
<param-value>
...
</param-value>
</context-param>
如果我尝试设置http://ip.ip.ip.ip:8080/var/lib/tomcat7
,则会返回UploadActionException
和e.getMessage()="http://ip.ip.ip.ip:8080//var//lib//tomcat7"
。
似乎Eclipse尝试在我的Window文件系统中搜索此路径。有什么想法解决这个问题?感谢。
答案 0 :(得分:1)
http://ip.ip.ip.ip:8080/var/lib/tomcat7与服务器上的/ var / lib / tomcat7不同。 要将其用作上载目录,请将此init-param放入web.xml
中的上载servlet声明中<context-param>
<description>Upload Directory</description>
<param-name>upload-directory</param-name>
<param-value>/var/lib/tomcat7</param-value>
</context-param>
然后在上传servlet中构建一个以
开头的路径字符串String dirPath = getServletContext().getInitParameter("upload-directory");
然后将FileItem写入这样的文件
File file = new File( dirPath + "/" + fileItem.getName());
fileItem.write(file);
所有这些都需要整个目录/ var / lib / tomcat7可以被任何运行tomcat的用户写入,这是一个坏主意。但是你有它。