Java 重新部署已删除的项目上载图像文件夹
我能够成功上传文件,但文件会存储到服务器上的部署目录中 一旦我删除该项目并将其重新部署到我的Tomcat服务器7.0,我上传的所有文件都会从中删除Java 重新部署已删除的项目上载图像文件夹,java,jsf-2,Java,Jsf 2,我能够成功上传文件,但文件会存储到服务器上的部署目录中 一旦我删除该项目并将其重新部署到我的Tomcat服务器7.0,我上传的所有文件都会从中删除 我使用JSF作为Tomcat服务器7.0的服务器端技术。在EclipseIDE中,将文件保存到/WEB-INF文件夹或硬盘驱动器的任何位置(当然,部署目录除外) 我使用了这段代码(它将每个用户的文件存储到自己的文件夹中) getPathToFiles只需从ServletContext返回realPath,而FileUtils是Apache IO的类(
我使用JSF作为Tomcat服务器7.0的服务器端技术。在EclipseIDE中,将文件保存到/WEB-INF文件夹或硬盘驱动器的任何位置(当然,部署目录除外) 我使用了这段代码(它将每个用户的文件存储到自己的文件夹中)
getPathToFiles
只需从ServletContext返回realPath,而FileUtils是Apache IO的类(但您可以自己编写文件复制的代码,它只是帮助器类)您应该不要将上载的文件存储在deploy文件夹中,也绝对不要像其他人建议的那样存储在WEB-INF
文件夹中。当您重新部署webapp时,它们会丢失,这仅仅是因为它们不包含在原始WAR文件中
您需要将上载的文件存储在部署文件夹外的固定路径上。例如/var/webapp/uploads
。通过向Tomcat添加一个新的
,您始终可以使该文件夹在web上可用
另见:
String path = Util.getPathToFiles() + "WEB-INF" + File.separator + "upload";
try {
path += File.separator + session.getCurrentUser().getLogin();
if (!isFolderExists(path)) {
new File(path).mkdir();
}
path += File.separator + file.getName();
FileUtils.copyFile(file, new File(path));
} catch (IOException ex) {
Logger.getLogger(ThesisBean.class.getName()).log(Level.SEVERE, null, ex);
} finally {
file.delete();
}