这就是我所知道的:
-
上传用户提供的文件时,我们应将它们放在部署文件夹外的文件夹中 . 我叫它D:\ uploads .
-
我们应该(以某种方式)将该文件夹(D:\ uploads)添加为Web应用程序上下文 .
这是我做的:
-
我将文件上传到文件夹D:\ uploads .
-
我尝试通过将以下行添加到TOMCAT_DIR / conf / server.xml来添加Web应用程序上下文,因为它被提及here:
<Context docBase="D:\uploads" path="/uploads"/>
但这没有任何影响 . 咨询http://localhost:8080/uploads/file.png或http://localhost:8080/uploads时,收到HTTP状态404错误 .
所以我想知道:
-
我做错了什么?如何将我的上传文件夹添加到Tomcat?
-
上传文件有什么更好的方法吗?因为我'm wondering what should I change if I want to deploy my application to another server where there'没有D:\ uploads .
1 回答
更改
docBase
属性 . 使用D:/uploads
(带斜杠)而不是D:\uploads
(带反斜杠) .在Java中处理文件时,您可以安全地在所有平台上使用
/
(斜杠,而不是反斜杠) .关于从IDE和
bin/startup.bat
启动Tomcat时在注释中提到的差异:当您从IDE启动Tomcat时,它很可能不会使用Tomcat正在使用的相同context.xml
. 只需查看IDE中的Tomcat设置即可 .如何存储上传的文件是Stack Overflow的常见主题 . 只需环顾四周,你会对这个主题如何受欢迎感到惊讶 .
如果您对
D:/uploads
中的文件存储不满意,或者您将有其他服务器访问这些文件,您可以考虑将它们存储在网络中的某个位置 . 根据您的要求,您可以使用一个专用服务器来存储文件,或者只共享包含当前服务器中文件的文件夹 . 正确的决定将始终取决于您的要求 .