以前一直是把文件转为数据流存入数据库保存,实例多是应用在图片存储上。
如今需要把Excel文件以二进制流存入数据库中,当用户需要做Excel数据分析时,得先把数据流创建为一个文件,然后再对这个文件进行处理。
上传文件以二进制存储数据库中,Insus.NET在这里就不做演示了,因为在Insus.NET的博客能找得到。
下面是演示二进制数据流创建文件。
//创建一个临时文件夹
string tempPath = "~/Temp/";
//判断是否存在
if (!Directory.Exists(Server.MapPath(tempPath)))
{
//如果不存在,创建它
Directory.CreateDirectory(Server.MapPath(tempPath));
}
//判断数据库是否存此笔记录
if (objKqUploadFile.GetFileByPrimaryKey(pk).Rows.Count > 0)
{
DataRow dataRow = objxxx.GetFile(pk).Rows[0];
//取得原来的文件名并和临时文件夹组成fullName。
string filePath = tempPath + dataRow["OldFileName"].ToString();
//数据流创建文件,使用file的Create的方法。
using (FileStream fileStream = File.Create(Server.MapPath(filePath)))
{
//取得数据库的二进制
byte[] buffer = (byte[])dataRow["ExcelFile"];
//写文件。
fileStream.Write(buffer, 0, buffer.Length);
}
}
string tempPath = "~/Temp/";
//判断是否存在
if (!Directory.Exists(Server.MapPath(tempPath)))
{
//如果不存在,创建它
Directory.CreateDirectory(Server.MapPath(tempPath));
}
//判断数据库是否存此笔记录
if (objKqUploadFile.GetFileByPrimaryKey(pk).Rows.Count > 0)
{
DataRow dataRow = objxxx.GetFile(pk).Rows[0];
//取得原来的文件名并和临时文件夹组成fullName。
string filePath = tempPath + dataRow["OldFileName"].ToString();
//数据流创建文件,使用file的Create的方法。
using (FileStream fileStream = File.Create(Server.MapPath(filePath)))
{
//取得数据库的二进制
byte[] buffer = (byte[])dataRow["ExcelFile"];
//写文件。
fileStream.Write(buffer, 0, buffer.Length);
}
}