之前做了关于窗体应用程序关于使用SQL Server存储大文件的方法。这里记录的是关于网页操作SQL Server 存储大文件的方法。
方法:
1,将合同内容以文件的方式存放在本地的物理磁盘上。(文件的格式可以自己指定,为了数据安全。咱们可以对文件加密哦)
2,获取合同文件所在路径(这里最好是绝对路径,并且包含文件名)。
3,将合同文件所在路径存储到数据库中,这样,大大减轻了数据从数据库输入输出的负担。
-----------------看图说话-------------------界面随便做的
============ 注 意 ================
这里和窗体不一样的地方是,web只需要将文件名(含后缀)存放至数据库即可。而窗体存放是将绝对路径存储到数据库中。
=================================================
-------------------代码---------------------------
创建按钮的关键代码如下:
///---获取包含该应用程序的目录的名称
string strCurrentPath = System.AppDomain.CurrentDomain.BaseDirectory;
///---实例化d对象
FileStream fileStream = new FileStream(strCurrentPath + "\\test.txt", FileMode.OpenOrCreate);
StreamWriter writer = new StreamWriter(fileStream);
///---将输入的信息录入文本文件中
writer.Write(textBox_input.Text);
///---关闭对象
writer.Close();
fileStream.Close();
///------获取当前插入数据库的行索引
int iRowIndex = int.Parse(AccessHelper.dataSet("SELECT COUNT(*) FROM [FileInfo]").Tables[0].Rows[0][0].ToString()) + 1;
///--插入数据库(ID + FILEPATH)
AccessHelper.excuteSql("INSERT INTO [FileInfo] VALUES('"+iRowIndex+"', '"+ "test.txt"+"')");
///---提示操作成功
///------!!!!!!!!!!! 然而并不能提示
///ClientScript.RegisterStartupScript(typeof(string), "print", "<script>alert('" + "操作成功" + "')'</script>");
显示文件内容按钮的关键代码如下:
///--显示数据库中的存储信息
GridView1.DataSource = AccessHelper.dataSet("SELECT * FROM [FileInfo]").Tables[0];
GridView1.DataBind();
///----在文本框中显示指定路径上的文件内容,
///!!!!!!!!!!!注意,我这里的数据库中只有一条数据,显示出来的数据也只有一条,所以,就写死了行和列索引。
textBox_showFileContent.Text = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath(GridView1.Rows[0].Cells[1].Text));
///---获取gridview单元格的值
//textBox_showFileContent.Text = GridView1.Rows[0].Cells[1].Text;
///---获取指定文件名的绝对路径
///textBox_showFileContent.Text = HttpContext.Current.Server.MapPath("文件名(比如test.txt)");