在SQL Server数据库中存储文件
本文关键字:存储文件 数据库 Server SQL | 更新日期: 2023-09-27 18:15:32
我想通过c#在我的SQL Server数据库中存储文件,我已经做到了,没有问题。
这是我的代码:
byte[] file;
using (var stream = new FileStream(letter.FilePath, FileMode.Open, FileAccess.Read))
{
using (var reader = new BinaryReader(stream))
{
file = reader.ReadBytes((int)stream.Length);
letter.ltr_Image = file;
}
}
LetterDB letterDB = new LetterDB();
id = letterDB.LetterActions(letter);
在LetterActions
模块中插入SQL操作。但是我想知道,为了减少数据库的大小(它每天都在增加),有没有什么解决方案可以压缩文件,然后将它们存储在数据库中?
是的,您可以在将文件存储到数据库之前使用ZipFile类对其进行压缩。看看这里:https://msdn.microsoft.com/en-us/library/system.io.compression.zipfile(v=vs.110).aspx
也有大量的示例代码。在这里看到的:http://imar.spaanjaars.com/414/storing-uploaded-files-in-a-database-or-in-the-file-system-with-aspnet-20
可以这样压缩文件。然后插入压缩文件流到数据库,但当你读取它时,你需要解压缩它。
如果您确实需要在DB中存储文件,建议您通过客户端进行压缩和解压缩。
更好的处理文件的方法是将文件存储在磁盘中,只将文件路径存储在数据库中,当客户端需要文件时,使用文件路径获取文件。