我最近和亲自做过两件事; 我更喜欢使用目录方法来存储图像,同时将它们的属性保存在DB中.
主要原因:我有一个客户,我为谁建立了一个网站.在网站上; 有一个照片库部分,允许用户上传新照片(可以从公共网站浏览).由于我的客户在上传之前没有想过优化图像;*.jpg超过1mb.我确实实现了更新图像的能力(一旦保存到数据库),但它必须一次完成一条记录.
如果在将图像存储在目录中时发生这种情况,则可以在本地保存文件,优化文件并将其放回服务器.
这是一个例子
我最近和亲自做过两件事; 我更喜欢使用目录方法来存储图像,同时将它们的属性保存在DB中.
主要原因:我有一个客户,我为谁建立了一个网站.在网站上; 有一个照片库部分,允许用户上传新照片(可以从公共网站浏览).由于我的客户在上传之前没有想过优化图像;*.jpg超过1mb.我确实实现了更新图像的能力(一旦保存到数据库),但它必须一次完成一条记录.
如果在将图像存储在目录中时发生这种情况,则可以在本地保存文件,优化文件并将其放回服务器.
这是一个例子
我去找文件夹.如果你的sttorage空间不足(只需将它们移动到另一个磁盘并重新指向),就可以获得更大的灵活性,与其他应用程序(例如Silverlight)相比具有更大的灵活性.我只使用DB来保证必须安全的文件.
对于任何普通网站,您绝对希望将其作为网站应用程序本身的一部分,而不是存储在数据库中.一个网站应该尽可能地自包含以保持其可移植性,并且不向数据库添加往返(即使在缓存中)也只是一件好事.Web服务器非常擅长提供图像文件.
但是,我个人正在开发一个应用程序,其中图像是动态创建的,并通过第二个管理应用程序提供给网站.显然,这些必须以某种形式进行数据库支持,以保持图像的可维护性和安全性.
简而言之,图像具有商业价值(即它们是内容,它们需要安全性,或者它们是动态的),您将不得不将它们存储在数据库中.如果他们是静态和琐碎的,那么让网站成为一个网站.
对此的两点看法:
使用文件系统.但是要确保你的方案设计得足够好,任何一个文件夹都不会超载图像,这会成为管理的噩梦.例如,您可以使用标识符的第一个或最后一个字母或后续位置表示法将其树形化.您的里程会有所不同,因此请确保该方案符合您的数据集(图像)大小.如果您只管理20个图像,则无需详细说明.
使用SQL Server 2008.它有一个名为filestream的新数据类型,同时将图像保存到文件系统,但允许您通过标准数据库查询检索它.有关更多信息,请参见http://msdn.microsoft.com/en-us/library/cc949109.aspx.
这些不是唯一的选择,但至少,我建议选项#1,因为你可以通过使用基于文件系统的方案获得更好的性能,而不是从数据库中存储和读取blob .