1

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

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

我使用 JSF 作为 Tomcat 服务器 7.0 的服务器端技术。在日食IDE中

4

2 回答 2

2

您不应该上传的文件存储在部署文件夹中,也绝对不应该按照WEB-INF其他人的建议存储在文件夹中。当您重新部署 web 应用程序时,它们会丢失,这仅仅是因为它们未包含在原始 WAR 文件中。

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

也可以看看:

于 2012-05-24T13:20:13.907 回答
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 的类(但您可以自己编写文件复制代码,它只是帮助类)

于 2012-05-24T06:54:37.683 回答