我在哪里可以上传Tomcat可以访问的文件?

时间:2014-06-29 05:36:45

标签: java java-ee tomcat file-upload

我在Tomcat中运行Java J2EE应用程序,我想上传一些可以通过URL直接由Tomcat提供服务的文件(即,我不想创建一个额外的servlet来提供文件和我不想使用Apache)。

这是什么解决方案?我知道我不应该在已部署的WAR目录中创建文件(如果它完全被解压缩),如this very old post所示。

我尝试在" webapps":

下创建另一个目录
System.getProperty("catalina.base") + "/webapps/uploadedFiles/";

但Tomcat似乎没有在" localhost:8080/uploadedFiles/..."中提供任何文件。所以我必须将文件放在webapps / ROOT目录中,是否可以访问它们。但是,这看起来很丑陋,而且可能不太正确,因为我认为ROOT目录不是为此目的而设计的。

我的问题是:

我如何制作TOMCAT服务我的上传文件,考虑到它们不能放在已部署的目录中,因为它们可以被覆盖?

或者,同样的:我应该在哪里放置我的上传文件,以便Tomcat可以通过HTTP请求直接为他们提供服务,而且他们不会被重新部署覆盖?

1 个答案:

答案 0 :(得分:2)

  

保存上传的文件(不要使用getRealPath()也不要part.write()!)

     

前往以下答案,了解正确保存的详细信息   获得InputStreamfileContent变量,如下所示   上面的代码片段)到磁盘或数据库:

           

提供上传文件

     

前往以下答案,了解正确提供保存的详细信息   从磁盘或数据库返回到客户端的文件:

     

Source