c# - 将图像保存到 HDD 或存储为数据库中的字节数组?

标签 c# asp.net file-upload arrays

<分区>

Possible Duplicate:
Storing Images in DB - Yea or Nay?

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

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

我认为这里真正的问题是..我想在 IIS 还是 Sql Server 2008 R2 上加载?

关于我应该使用哪种方法的普遍共识是什么?为什么?谢谢!

最佳答案

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

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

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

因此,这取决于您将拥有多少图像,以及您需要应用程序的可扩展性。

关于c# - 将图像保存到 HDD 或存储为数据库中的字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14528375/

相关文章:

c# - 无法让我的相机正确限制其旋转

asp.net - 将网站移至新主机导致 "forbidden"

javascript - IE9上传问题: text blocks upload button from working

c# - 将 GroupBox 中的所有控件设置为只读?

c# - 如何确定属性是否是具有反射的自动实现属性?

asp.net - 当用户离开站点时,如何强制 ASP.Net session 过期?

java - perl 文件句柄不读取名称中带有空格的文件

design-patterns - 使用策略模式支持从多个源上传文件

c# - WCF 服务与 Windows 服务

css - 为每个节点设计 asp.net TreeView