将图像保存到HDD或作为字节数组存储在数据库中?

时间:2013-01-25 18:46:10

标签: c# asp.net file-upload bytearray

  

可能重复:
  Storing Images in DB - Yea or Nay?

非常简单,我正在托管一个网站,用户可以上传图片,我有一个.net文件上传控件正常工作..我只是想知道我应该用什么方法将它们存储在服务器上.. < / p>

  • 我可以使用FileUpload控件上的SaveAs()方法将其保存为实际文件..
  • 我可以将图像分解为Byte []并将其存储在数据库中以供访问。

我相信这里真正的问题是..我是否想要在IIS或Sql Server 2008 R2上加载?

我应该使用哪种方法以及为什么会有什么共识?谢谢!

2 个答案:

答案 0 :(得分:4)

没有普遍的共识,因为这两种方法都不理想。

将图像存储为文件意味着将应用程序扩展到在多个服务器上运行变得更加困难。然后,您需要SAN / NAS来存储文件而不是本地磁盘。

将图像存储在数据库中意味着您正在为图像数据使用大量缓存空间,从而减慢其他查询速度,并且还会增加数据库和备份的大小。这也意味着您必须通过页面提供图像,不能直接请求文件。

因此,它归结为您将拥有多少图像,以及您需要应用程序的可扩展性。

答案 1 :(得分:3)

避免将它们放入数据库中。这将使您的数据库的大小变得更大,仅仅因为一些文件。这也会影响备份大小。

我没有看到在数据库中拥有实际文件字节有任何实际好处。如果你有文件系统中文件的物理路径,那就足够了。

这也允许您拥有自己的文件备份策略。

相关问题