Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重新部署已删除的项目上载图像文件夹_Java_Jsf 2 - Fatal编程技术网

Java 重新部署已删除的项目上载图像文件夹

Java 重新部署已删除的项目上载图像文件夹,java,jsf-2,Java,Jsf 2,我能够成功上传文件,但文件会存储到服务器上的部署目录中 一旦我删除该项目并将其重新部署到我的Tomcat服务器7.0,我上传的所有文件都会从中删除 我使用JSF作为Tomcat服务器7.0的服务器端技术。在EclipseIDE中,将文件保存到/WEB-INF文件夹或硬盘驱动器的任何位置(当然,部署目录除外) 我使用了这段代码(它将每个用户的文件存储到自己的文件夹中) getPathToFiles只需从ServletContext返回realPath,而FileUtils是Apache IO的类(

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

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


我使用JSF作为Tomcat服务器7.0的服务器端技术。在EclipseIDE中,将文件保存到/WEB-INF文件夹或硬盘驱动器的任何位置(当然,部署目录除外)

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


getPathToFiles
只需从ServletContext返回realPath,而FileUtils是Apache IO的类(但您可以自己编写文件复制的代码,它只是帮助器类)

您应该不要将上载的文件存储在deploy文件夹中,也绝对不要像其他人建议的那样存储在
WEB-INF
文件夹中。当您重新部署webapp时,它们会丢失,这仅仅是因为它们不包含在原始WAR文件中

您需要将上载的文件存储在部署文件夹外的固定路径上。例如
/var/webapp/uploads
。通过向Tomcat添加一个新的
,您始终可以使该文件夹在web上可用

另见:

由于您的应用程序和文件位于同一目录中,因此很明显会发生这种情况。不要将上载的文件保存在部署目录中!这是我的逻辑。字符串tmpFile=scontext.getRealPath((“/ngoPhotos/”)+event.getFile().getFileName());文件结果=新文件(tmpFile);文件输出流;请尝试{fos=newfileoutputstream(tmpFile);fos.write(imageByte);fos.close();}catch(异常e){e.printStackTrace();}。如何存储到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();
    }