我在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请求直接为他们提供服务,而且他们不会被重新部署覆盖?
答案 0 :(得分:2)
保存上传的文件(不要使用
getRealPath()
也不要part.write()
!)前往以下答案,了解正确保存的详细信息 获得
InputStream
(fileContent
变量,如下所示 上面的代码片段)到磁盘或数据库:
- Recommended way to save uploaded files in a servlet application
- How to upload an image and save it in database?
- How to convert Part to Blob, so I can store it in MySQL?
提供上传文件
前往以下答案,了解正确提供保存的详细信息 从磁盘或数据库返回到客户端的文件: