我正在使用 DATA URI(客户端,使用画布)将图像发布到服务器。我现在有两个选择:我可以将“图像”作为字符串保存在 varchar(max) 列中,或者我可以将其转换为 byte[] 并将其保存为 varbinary(max)。
至于实施,努力是一样的。我正在尝试确定 1:数据库中的空间和 2:显示图像更有效。有没有人看到任何对此的分析或有衡量这个的好方法?
仅供参考 - 一个 3kb 的图像在数据库中大约有 100K 个字符。
使用:ASP.NET 4.5、MVC、SQL Server 2008
澄清
我可以使用 byte[] 在 varbinary(MAX) 列中将图像存储在数据库中,就像通常的情况一样,或者我可以存储来自 HTML5 画布的 DATA URI,看起来像data:image/png;base64,iVBORw0K.. .在 varchar(max) 列中。
存储 byte[] 是典型的,无需进一步解释。存储 DATA URI 只是一个字符串并显示图像将是:
<img src="data:image/png;base64,iVBORw0K" /> or
<img src="@Model.Uri" />
我的问题是哪一个更高效、更节省空间,以及是否有任何文档、白皮书或围绕此特定比较的分析。