我使用以下代码在 SQL Server 中将 word 文件和图像保存为 varbinary
类型:
文件:
byte[] data = null;
FileInfo fInfo = new FileInfo(newfile);
long numBytes = fInfo.Length;
FileStream fStream = new FileStream(newfile, FileMode.Open, FileAccess.ReadWrite);
BinaryReader br = new BinaryReader(fStream);
data = br.ReadBytes((int)numBytes);
return data;
和图像:
using (MemoryStream ms = new MemoryStream())
{
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
但是他们的表使用量很大,所以数据库的备份文件也很大。
我该怎么做才能以低音量保存它们?
最佳答案
您可以将二进制文件存储在服务器上的文件夹中,但这一次您可能会遇到备份和还原操作以及同步数据库文件数据和数据文件夹文件的问题。
将数据存储在数据库中管理并消除了这些复杂性 即使使用 SQL Server 2012,我们也有一个表类型,FileTable 可以尝试使用SQL Server的FileStream特性,通过简单的文件夹复制粘贴或删除等操作,使文件事务的管理更简单。 所以就像将文件保存到服务器上的文件夹一样,您直接将文件数据插入到FileTable中。 当然,您的数据库大小会再次增加,但这样更方便。
关于c# - 在 SQL Server 中保存文件和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48059448/