0

这是我的情况:

  • 我的表必须有一个按钮来显示图像,我在数据库中插入数据,只包含图像文件的名称(filename.jpg)而不是特定路径,服务器将根据它在真实服务器中的上下文显示它或不是。为此,经过长时间的搜索,我找到了getServletContext().getRealPath("/images")找到粘贴所在上下文的方法,例如本地主机或真实主机(至少这是我所理解的)。

但是,当我在 localhost 时,它会显示该方法的上下文

getServletContext().getRealPath("/images"):

C:\Documents and Settings\josue\Meus documentos\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testeDeFuncoes\images\file.jpg

我推断它正在调用临时文件夹的上下文,该文件夹仅用于 localhost 测试。我认为要在 localhost 中恢复它会起作用,但在真正的服务器中它会起作用,我认为不是,对吧?

我可以以动态方式放入 Web 内容,当我导出 WAR 文件时,它会存储在文件中,上传时,无论服务器决定选择哪个位置,它都能正常工作。如果不是,在大多数情况下,通常用什么来做一个网页?

4

1 回答 1

1

您可能会考虑将图像存储在数据库中,具体取决于您的需要,请参阅将图像存储在数据库中 - 是或否?

我个人非常喜欢将图像存储在数据库中并将它们缓存在本地文件系统的临时目录中。

无论哪种方式,您都应该有一个可靠的已知规范位置来存储图像。如果您不将它们存储在数据库中,请决定一个非临时目录,或者使其可配置。

webapp 可能是从一个 war 文件中提供的,并且servletContext.getRealPath(...)不太可能返回一个可靠的地方来存储任何东西。

于 2012-10-04T12:36:27.110 回答