这是我所知道的:
上传用户提供的文件时,应将其放在文件夹中
在部署文件夹之外。我称它为D:\ uploads。
我们应该(以某种方式)将该文件夹(D:\ uploads)添加为Web应用程序上下文。
这是我所做的:
我将文件上传到文件夹D:\ uploads。
我尝试通过将以下行添加到TOMCAT_DIR / conf / server.xml中来添加提到的here的Web应用程序上下文:
<Context docBase="D:\uploads" path="/uploads"/>
但这没有任何效果。当咨询http://localhost:8080/uploads/file.png或http://localhost:8080/uploads时,出现HTTP Status 404错误。
所以我想知道:
我做错了什么 ?如何将上传文件夹添加到Tomcat?
有没有更好的上传文件方法?
因为我想知道如果要部署我的我应该改变什么
应用程序到没有D:\ uploads的另一台服务器。
最佳答案
更改docBase
属性。使用D:/uploads
(带斜杠)而不是D:\uploads
(带反斜杠)。
使用Java处理文件时,可以在所有平台上安全地使用/
(斜杠,而不是反斜杠)。
关于从IDE和bin/startup.bat
启动Tomcat时在注释中提到的差异:从IDE启动Tomcat的可能性很大,它没有使用与Tomcat相同的context.xml
。只需在IDE中查看Tomcat设置即可。
如何存储上传的文件是Stack Overflow的常见主题。环顾四周,您会惊讶于该主题的受欢迎程度。
如果您不满意将文件存储在D:/uploads
中,或者将有其他服务器访问这些文件,则可以考虑将它们存储在网络中的某个位置。根据您的要求,您可以使用一台专用服务器来存储文件,或者仅共享当前服务器中包含文件的文件夹。正确的决定将始终取决于您的要求。
关于eclipse - conf/server.xml中的更改似乎在运行时没有任何作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34699738/