重新部署项目上载映像文件夹将被删除

时间:2012-05-24 06:35:47

标签: java jsf-2

我能够成功上传文件,但文件会存储到服务器上的已部署目录中。

一旦删除项目并将项目重新部署到我的Tomcat服务器7.0,我上传的所有文件都会从中删除。

我使用JSF作为我的服务器端技术与Tomcat服务器7.0。在eclipse Ide中

2 个答案:

答案 0 :(得分:2)

您应该将上传的文件存储在deploy文件夹中,并且绝对不会按照其他人的建议存储在WEB-INF文件夹中。重新部署webapp时它们会丢失,原因很简单,因为它们不包含在原始WAR文件中。

您需要将上传的文件存储在deploy文件夹之外的固定路径上。例如/var/webapp/uploads。您始终可以通过向Tomcat添加新的<Context>来使该文件夹可用于Web。

另见:

答案 1 :(得分:0)

将文件保存到/ WEB-INF文件夹或硬盘驱动器的任何位置(当然,部署目录除外)

我使用了这段代码(它将每个用户的文件存储到它自己的文件夹中)

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();
    }

getPathToFiles只是从ServletContext返回realPath,而FileUtils是来自Apache IO的类(但你可以自己编写文件副本的代码,它只是帮助类)