我应该将我的图像存储在数据库或文件夹中吗?

Eti*_*nne 24 c# vb.net asp.net image file

可能重复:
在DB中存储图像 - 是或否?

你好

目前,我网站上的每家公司都有1张图片,可以添加到他们的个人资料中.我将该图像保存到数据库中....它的公司徽标.

现在我想让他们添加更多图片.现在我不知道我是否必须将它全部保存在数据库中或保存在文件夹中????

我认为文件夹会更好的原因是因为有很多很好的文章与花哨的银色光有点功能,我可以使用,但所有这些只适合保存在文件夹中的图像.

因为我不是很好,我很难改变代码来查看数据库而不是使用文件夹进行图像检索的示例.

我想在我的网站上添加这样的东西(浏览图片).关于如何在图像保存在数据库中时如何执行此操作的任何代码示例?我在VB.net中使用ASP.NET. 点击这里查看我在说什么

有什么想法吗?

问候艾蒂安

Gth*_*n83 15

我最近和亲自做过两件事; 我更喜欢使用目录方法来存储图像,同时将它们的属性保存在DB中.

主要原因:我有一个客户,我为谁建立了一个网站.在网站上; 有一个照片库部分,允许用户上传新照片(可以从公共网站浏览).由于我的客户在上传之前没有想过优化图像;*.jpg超过1mb.我确实实现了更新图像的能力(一旦保存到数据库),但它必须一次完成一条记录.

如果在将图像存储在目录中时发生这种情况,则可以在本地保存文件,优化文件并将其放回服务器.

这是一个例子


Pro*_*m.X 13

我去找文件夹.如果你的sttorage空间不足(只需将它们移动到另一个磁盘并重新指向),就可以获得更大的灵活性,与其他应用程序(例如Silverlight)相比具有更大的灵活性.我只使用DB来保证必须安全的文件.

  • 假设您的数据库有效保护,它提供了一个额外的层.攻击者需要识别图像存储在SQL中,识别服务器,用户名/密码,表.简单地扫描受感染机器上的文件系统将不会产生结果,并且编写得不好的网站将不会通过HTTP请求技术公开文件(例如,保留可下载的文件).如果SQL Server位于单独的机器/网络上,则工作得更好. (2认同)

ann*_*ata 5

对于任何普通网站,您绝对希望将其作为网站应用程序本身的一部分,而不是存储在数据库中.一个网站应该尽可能地自包含以保持其可移植性,并且不向数据库添加往返(即使在缓存中)也只是一件好事.Web服务器非常擅长提供图像文件.

但是,我个人正在开发一个应用程序,其中图像是动态创建的,并通过第二个管理应用程序提供给网站.显然,这些必须以某种形式进行数据库支持,以保持图像的可维护性和安全性.

简而言之,图像具有商业价值(即它们是内容,它们需要安全性,或者它们是动态的),您将不得不将它们存储在数据库中.如果他们是静态和琐碎的,那么让网站成为一个网站.


Jes*_*cer 5

对此的两点看法:

  1. 使用文件系统.但是要确保你的方案设计得足够好,任何一个文件夹都不会超载图像,这会成为管理的噩梦.例如,您可以使用标识符的第一个或最后一个字母或后续位置表示法将其树形化.您的里程会有所不同,因此请确保该方案符合您的数据集(图像)大小.如果您只管理20个图像,则无需详细说明.

  2. 使用SQL Server 2008.它有一个名为filestream的新数据类型,同时将图像保存到文件系统,但允许您通过标准数据库查询检索它.有关更多信息,请参见http://msdn.microsoft.com/en-us/library/cc949109.aspx.

这些不是唯一的选择,但至少,我建议选项#1,因为你可以通过使用基于文件系统的方案获得更好的性能,而不是从数据库中存储和读取blob .