在SQL Server数据库中存储文件

时间:2016-10-29 05:53:44

标签: c# sql sql-server visual-studio filestream

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

2 个答案:

答案 0 :(得分:1)

是的,您可以使用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

答案 1 :(得分:1)

您可以压缩文件this。然后将压缩文件流插入到DB中,但是当您阅读它时,您需要将其解压缩 如果您确实需要在DB中存储文件,建议您通过客户端对其进行压缩和解压缩 更好的方法是将文件存储在磁盘中,并且只在DB中存储文件路径,当客户端需要文件使用文件路径获取文件时。