我正在基于MSSQL数据库在C#.NET中开发一个内部应用程序。 用户可以上传链接到特定实体的图像。这些图像通常大约为4到5 MB,无法压缩存储。
现在这些图像存储在应用程序所在的文件系统中。打印图像子集时可能存在滞后问题,可能是30.它们通过DB进行过滤,并通过我从数据库获取的位置字符串加载,然后
Sytem.Drawing.Image.FromFile(locationstring)
我可以(并且必须)调整图像的大小以进行打印(400x255像素),以便在他们需要具有原始尺寸和质量的应用程序中查看它们。
我应该重新设计图片的存储方式并实现一个功能,用户可以更改图像链接的实体(我已经想到的那个)。
我通过应用程序存储图像时重命名图像 - 它们获得GUID作为名称 - 原始名称和它们所属的实体存储在数据库中。 我在考虑将这些图像存储在DB而不是filesytem中。它们位于用户无权访问的目录中,因此它们不会对它们产生任何影响。
在这种情况下,将图像存储在数据库而不是文件系统中是否有意义?
目前应用程序数据库是MSSQL2008R2,但可以切换到MSSQL2014。 MSSQL服务器和文件系统在外部托管,可通过Citrix访问。该应用程序也通过Citrix托管。
答案 0 :(得分:0)
您应该将图像存储在磁盘中,其路径应存储在数据库中。 如果要重新调整图像大小(使用C#代码),请将其放入另一个文件夹并将其路径存储在db
中有关详细信息,请参阅