ASP.NET保存PDF、Word和Excel文件到数据库
程序员文章站
2022-06-20 13:36:05
在项目中,有时候我们很需要把pdf、word和excel文档等等上传到数据库,以便日后使用。今天这篇文章向大家讲解如何将这些文件保存到数据库的。
详细步骤
第一步:打开...
在项目中,有时候我们很需要把pdf、word和excel文档等等上传到数据库,以便日后使用。今天这篇文章向大家讲解如何将这些文件保存到数据库的。
详细步骤
第一步:打开数据库,单击新建查询,创建一个名称为documents的表:
代码如下:
create table documents ( sno int identity, name_file varchar(100), displayname varchar(50), extension varchar(10), contenttype varchar(200), filedata varbinary(max), filesize bigint, uploaddate datetime )
这个表包含了这些数据:
sno序列号
name_file文件名
displayname 文件显示的名称
extension文件的扩展名
contenttype文件种类
filedata文件二进制格式
filesize文件大小
uploaddate文件导入时间
第二步:打开visual studio,新建一个空网站,命名为“filestobinary”
第三步:再添加一个新页面,命名为“conversion.aspx”
在这个页面我们需要添加textbox ,fileupload ,button这三个控件。
设计界面如图:
当然你也可以在conversion.apsx文件直接输入下列代码:
显示文件 <asp:textbox id="txtfilename" runat="server"> </asp:textbox> <br /> 选择文件 <asp:fileupload id="fileupload1" runat="server" /> <br /> <asp:button id="button1" runat="server" text="导入" onclick="button1_click" />
第四步:控件添加后,双击button,在conversion.apxs.cs文件添加以下命名空间。
using system; using system.web; using system.data.sqlclient; using system.data; using system.io;
然后在button1_click编写代码,将文件转换为二进制流,点击button后文件便可存到数据库中。
代码如下:
protected void button1_click(object sender, eventargs e) { if (!fileupload1.hasfile) { response.write("未选择文件"); return; } else { string filename = path.getfilename(fileupload1.postedfile.filename); string extension = path.getextension(filename); string contenttype = fileupload1.postedfile.contenttype; httppostedfile file = fileupload1.postedfile; byte[] document = new byte[file.contentlength]; file.inputstream.read(document, 0, file.contentlength); //验证保存的文件扩展名是否为pdf,doc,docx,xls. if ((extension == ".pdf") || (extension == ".doc") || (extension == ".docx") || (extension == ".xls")) { //验证文件的大小 if (file.contentlength <= 31457280) { //表里插入数据 using (sqlconnection conn = new sqlconnection("data source=afod3-609221015;initial catalog=personal;integrated security=true")) { conn.open(); string sql = @"insert into documents(name_file,displayname,extension,contenttype,filedata,filesize,uploaddate) values(@name_file,@displayname,@extension,@contenttype,@filedata,@filesize,getdate())"; sqlcommand cmd = new sqlcommand(sql, conn); cmd.parameters.add("@name_file", sqldbtype.varchar); cmd.parameters["@name_file"].value = filename; cmd.parameters.add("@displayname", sqldbtype.varchar); cmd.parameters["@displayname"].value = txtfilename.text.trim(); cmd.parameters.add("@extension", sqldbtype.varchar); cmd.parameters["@extension"].value = extension; cmd.parameters.add("@contenttype", sqldbtype.varchar); cmd.parameters["@contenttype"].value = contenttype; cmd.parameters.add("@filedata", sqldbtype.varbinary); cmd.parameters["@filedata"].value = document; cmd.parameters.add("@filesize", sqldbtype.bigint); cmd.parameters["@filesize"].value = document.length; cmd.executenonquery(); cmd.dispose(); conn.close(); response.write("数据已添加"); } } else { response.write("文件大小无效"); return; } } else { response.write("无效文件"); return; } } }
运行结果如图:
这时浏览文件夹,就可以添加我们的文件了。点击导入,成功添加。
如果选择了不符合规则的文件后,则会显示:
返回数据库,这时pdf、word 和excel文件已经成功添加到数据库啦。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
ASP.NET保存PDF、Word和Excel文件到数据库
-
ASP.NET保存PDF、Word和Excel文件到数据库
-
Asp.net实现直接在浏览器预览Word、Excel、PDF、Txt文件(附源码)
-
ASP.NET保存PDF、Word和Excel文件到数据库
-
Asp.net实现直接在浏览器预览Word、Excel、PDF、Txt文件(附源码)
-
.NET存储PDF、Word和Excel到数据库的方法详解
-
Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表...
-
爬取周董歌曲信息分别保存为excel文件和存入MySQL数据库以及发送到你的邮箱中
-
.NET存储PDF、Word和Excel到数据库的方法详解