C#:将图像保存到DB中

有人可以给我一些关于如何在C#中将图像文件保存到DB的建议吗? 我会保存很多图像,那么减少所需空间的最佳方法是什么? 我目前在DB中使用varbinary(max)字段。

谢谢!

如果你必须将实际文件存储在SQL中,那么请确保对图像大小设置一些限制,并确保正确规划数据库大小 – 有多少图像以及您期望的大小?

如果必须将其存储在SQL中,我的首选项是自动将其存放在自己的SQL数据库中。 这样,我遇到这些图像的任何性能问题都不会影响我的数据库的其余部分。

现在,如果您不必将图像存储在SQL数据库中,那么我认为这只是要求使用Azure Blob存储来完成。 去看看它 – 它将在一个非常有效的系统中为您提供您想要的东西。

如果您不能使用Azure,那么您应该组合一个类来处理文件系统中图像的读/写/查找。 保存到文件系统(正确完成)比保存到SQL要好得多。

那没关系。 但是,如果这些图像太大而且您的DBA可能不再喜欢oyu将它们放在那里,您可以将它们放在某处的驱动器上并将该位置存储在DB中。

我想有很多方法可以解决这个问题。 只是衡量你的利弊。

我给了你一个替代方案。

将图像存储在数据库中不是一个好主意。 您可以将URL存储到图像中。

您使用的是什么格式以及您使用的数据库技术?

一种选择是将图像转换为二进制数组并将其推送到数据库。 我在codeproject上找到了一些很好的代码来解决这个问题:

http://www.codeproject.com/KB/aspnet/ImageInDatabase.aspx

就像Magnus所说,FileStreams不存储在DB的页面中,因此它不会影响性能。

虽然,在数据库中存储文件意味着您的数据库备份将变得更大。

其他人提到只存储URL。 这也是一个好主意,可能是最简单的设置。