介绍
小编给大家分享一下。净存储PDF、Word和Excel到数据库的案例分析,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
打开数据库,单击新建查询,创建一个名称为文件的表:
代码如下:
创建表文档 ( SNo int身份, Name_File varchar (100), DisplayName varchar (50), 扩展varchar (10), ContentType varchar (200), FileData varbinary (max), 文件大小,长整型数字 UploadDate datetime )
这个表包含了这些数据:
SNo序列号
Name_File文件名
DisplayName文件显示的名称
扩展文件的扩展名
ContentType文件种类
FileData文件二进制格式
文件大小文件大小
UploadDate文件导入时间
打开Visual Studio,新建一个空网站,命名为“FilesToBinary”
再添加一个新页面,命名为“转换。aspx”
在这个页面我们需要添加文本框,FileUpload,按钮这三个控件。
设计界面如图:
当然你也可以在转换。apsx文件直接输入下列代码:
显示文件 & lt; asp:文本框ID=皌xtfilename"runat=皊erver"比; & lt;/asp: TextBox> & lt; br/比; 选择文件 & lt; asp: FileUpload ID=癋ileUpload1"runat=皊erver"/比; & lt; br/比; & lt; asp:按钮ID=癇utton1"runat=皊erver" 文本=暗既搿?使用系统; 使用包含; 使用System.Data.SqlClient; 使用System.Data; 使用先;
然后在Button1_Click编写代码,将文件转换为二进制流,点击按钮后文件便可存到数据库中。
代码如下:
保护无效Button1_Click(对象发送方,EventArgs e) { 如果(! FileUpload1.HasFile) { Response.Write(“未选择文件“);返回; } 其他的 { 字符串文件名=Path.GetFileName (FileUpload1.PostedFile.FileName); 字符串扩展=Path.GetExtension(文件名); 字符串contentType=FileUpload1.PostedFile.ContentType; HttpPostedFile文件=FileUpload1.PostedFile; 文档byte[]=新的字节(file.ContentLength); file.InputStream。读(文档、0 file.ContentLength);//验证保存的文件扩展名是否为pdf,医生,多克斯、xls。 如果((扩展==?pdf") | |(扩展==?doc") | |(扩展==?docx") | |(扩展==?xls")) {//验证文件的大小 如果文件。ContentLength & lt;=31457280) {//表里插入数据 使用(SqlConnection康涅狄格州=new SqlConnection(“数据源=afod3 - 609221015;初始目录=个人;综合安全=True")) { conn.Open (); 字符串sql=@"插入文档(Name_File DisplayName,扩展、ContentType FileData,文件大小,UploadDate)值(@Name_File、@DisplayName @Extension, @ContentType, @FileData, @FileSize,获取当前日期())“; 康涅狄格州SqlCommand cmd=new SqlCommand (sql); cmd.Parameters.Add (“@Name_File" SqlDbType.VarChar); cmd.Parameters [“@Name_File"]。值=https://www.yisu.com/zixun/filename; cmd.Parameters。Add (“@DisplayName SqlDbType.VarChar); cmd.Parameters (“@DisplayName”)。值=txtfilename.Text.Trim (); cmd.Parameters。Add (“@Extension SqlDbType.VarChar); cmd.Parameters (“@Extension”)。值=扩展; cmd.Parameters。Add (“@ContentType SqlDbType.VarChar); cmd.Parameters (“@ContentType”)。值=contentType; cmd.Parameters。Add (“@FileData SqlDbType.VarBinary); cmd.Parameters (“@FileData”)。值=文档; cmd.Parameters。Add (“@FileSize SqlDbType.BigInt); cmd.Parameters (“@FileSize”)。值=document.Length; cmd.ExecuteNonQuery (); cmd.Dispose (); conn.Close (); Response.Write(“数据已添加”); } } 其他的 {Response.Write(“文件大小无效”);返回;} } 其他的 { Response.Write(“无效文件”);返回; } } }
运行结果如图: