0

我正在使用 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 文件夹中,不是吗???....

4

1 回答 1

0

您是否绝对有必要将它们存储在部署文件夹中?如果人们正在上传图片,通常将它们存储在数据库中是一种更好的做法。(如果它们很小)或者在与部署不同的目录中。将它们存储在部署中会导致它们在每次需要重新部署时被删除。如果您采用我建议的路线,您将需要编写一个简单的 servlet,该 servlet 能够重新提供您的客户提交的图像,从您存储它们的位置。

如果您使用的是 tomcat,您可以将文件存储在您喜欢的任何位置。然后创建一个过滤器,通过将以下内容添加到 server.xml 文件中,将所有请求传递到已定义 url 到主机上的特定目录:

<Context path="/clientrequestpath/images" docBase="/serverpath/images/" />

其中 path 是浏览器发送的请求 URL,而 docBase 是您在主机上本地存储图像的位置。这种情况下不需要编写servlet,只需将数据库中存储的图片名称发送到客户端时,将其添加到jsp中的tag中,客户端就会自动请求图片文件。

于 2012-09-30T04:00:17.643 回答