在上传中保存文件的路径我应该选择getServletContext吗?

时间:2012-09-04 18:00:39

标签: java servlets file-upload workspace

以下是我的情况:

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

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

  

的getServletContext()getRealPath( “/图像”):

     

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

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

我能否以动态的方式放入Webcontent,当我导出WAR文件时,它存储在文件中,并且在上传时无论位置服务器决定选择什么,它都可以工作。如果没有,在大多数情况下通常用于网页的是什么?

1 个答案:

答案 0 :(得分:1)

您可以考虑将图像存储在数据库中,具体取决于您的需求,请参阅Storing Images in DB - Yea or Nay?

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

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

可以从war文件中提供webapp,servletContext.getRealPath(...)不太可能返回存储任何内容的可靠位置。