我想通过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操作。但我想知道,为了减少数据库的大小(每天增加),有没有解压缩文件然后将它们存储在数据库中的解决方案?
答案 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中存储文件路径,当客户端需要文件使用文件路径获取文件时。