我使用Netbeans 7开发我的web项目。我需要将从客户端收到的图像存储到web / images文件夹。
String location = getServletContext().getRealPath("/images");
如果我使用此代码,我会获得位置
C:\Users\Computer\Documents\NetBeansProjects\test\build\web\images
但我需要存储
C:\Users\Computer\Documents\NetBeansProjects\test\web\images
我需要稍后在我的jsp页面中显示这些图像,这样那些图像必须在web \ images文件夹中才不是它...... ....
答案 0 :(得分:0)
您是否绝对有必要将它们存储在部署文件夹中?如果人们上传图片,通常最好将它们存储在数据库中。 (如果它们很小)或者在与部署分开的目录中。将它们存储在部署中将导致每次需要重新部署时都将其删除。如果你选择我建议的路线,你需要编写一个简单的servlet,它能够重新提供客户提交的图像,无论你在哪里存储它们。
如果您使用的是tomcat,则可以将文件存储在任何您喜欢的位置。然后创建一个过滤器,通过将以下内容添加到server.xml文件,将所有请求传递到定义的URL到主机上的特定目录:
<Context path="/clientrequestpath/images" docBase="/serverpath/images/" />
其中path是浏览器发送的请求URL,docBase是您在主机上本地存储图像的位置。在这种情况下,您不需要编写servlet,只需将存储在数据库中的图像名称添加到jsp中发送到客户端的标记中,然后客户端就会自动请求图像文件。