在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操作。但是我想知道,为了减少数据库的大小(它每天都在增加),有没有什么解决方案可以压缩文件,然后将它们存储在数据库中?

在SQL Server数据库中存储文件

是的,您可以在将文件存储到数据库之前使用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中存储文件,建议您通过客户端进行压缩和解压缩。
更好的处理文件的方法是将文件存储在磁盘中,只将文件路径存储在数据库中,当客户端需要文件时,使用文件路径获取文件。