2013-03-25 67 views
2

我用java,tomcat的,JSF和primefaces保存图像数据库或服务器目录

,我在我的产品表中有一个重要的“形象”,我倒要问你,这是更好:保存在数据库或服务器一个目录图像

如果第二种情况是最好的,请更多的如何管理它解释我(我从来没有机会见到这种情况下)

预先感谢您

+0

你的图像有多大? [**要BLOB或不BLOB **](http://research.microsoft.com/apps/pubs/default.aspx?id=64525)讨论了在决定是否存储图像时应考虑的一些因素在数据库或文件系统中......即使它是为了与您正在使用的不同的堆栈而编写的。 – 2013-03-25 23:26:25

+1

看看[这里](http://stackoverflow.com/q/3748/1530938)方向 – kolossus 2013-03-26 01:11:09

+0

在我的愚蠢观点有图像数据库过载数据库和服务器。我使用第三方服务器目录来存储具有良好性能且非常便宜的图像(Amazon S3)。 – Damian 2013-03-26 18:48:07

回答

0

是否要将图像二进制文件保存在数据库中将图像文件保存在服务器目录中取决于您的需要。

永无止境的辩论仍在继续,您可以轻松地找到几个关键笔画。

这里是我如何做到这一点(第二种方法),它从来没有让人失望我:
假设你正在建设一个电子商务网站,并希望托管卖家上传的图片,例如产品图片和后来告诉他们。

  1. 物理节省您的服务器你的战争以外上传的图片文件。让我们假设该目录是/baseFolder/和文件的完整路径是/baseFolder /路径/到/图片。 jpg
  2. 在Tomcat中添加虚拟主机让您http://localhost:8080/imageBase/所指向的物理目录/baseFolder/。还有很多其他的方法来做这种映射。
  3. 在数据库中存储相对路径/path/to/image.jpg。所以,当你想要显示它时,你可以简单地说:<img src="#{webappRoot}/baseFolder/#{pathRetrievedFromDatabase}"/>。在这种情况下,它将是<img src="#{webappRoot}/baseFolder/path/to/image.jpg"/>

当然有很多不同的方法来实现同样的事情。 这是我能想到解释如何管理的最简单方法。
希望它有帮助。