ASP.NET保存PDF、Word和Excel文件到數(shù)據(jù)庫(kù)
在項(xiàng)目中,有時(shí)候我們很需要把PDF、Word和Excel文檔等等上傳到數(shù)據(jù)庫(kù),以便日后使用。今天這篇文章向大家講解如何將這些文件保存到數(shù)據(jù)庫(kù)的。
詳細(xì)步驟
第一步:打開(kāi)數(shù)據(jù)庫(kù),單擊新建查詢(xún),創(chuàng)建一個(gè)名稱(chēng)為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 )
這個(gè)表包含了這些數(shù)據(jù):
SNo序列號(hào)
Name_File文件名
DisplayName 文件顯示的名稱(chēng)
Extension文件的擴(kuò)展名
ContentType文件種類(lèi)
FileData文件二進(jìn)制格式
FileSize文件大小
UploadDate文件導(dǎo)入時(shí)間
第二步:打開(kāi)Visual Studio,新建一個(gè)空網(wǎng)站,命名為“FilesToBinary”
第三步:再添加一個(gè)新頁(yè)面,命名為“Conversion.aspx”
在這個(gè)頁(yè)面我們需要添加TextBox ,F(xiàn)ileUpload ,Button這三個(gè)控件。
設(shè)計(jì)界面如圖:
當(dāng)然你也可以在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="導(dǎo)入" OnClick="Button1_Click" />
第四步:控件添加后,雙擊Button,在Conversion.apxs.cs文件添加以下命名空間。
using System; using System.Web; using System.Data.SqlClient; using System.Data; using System.IO;
然后在Button1_Click編寫(xiě)代碼,將文件轉(zhuǎn)換為二進(jìn)制流,點(diǎn)擊Button后文件便可存到數(shù)據(jù)庫(kù)中。
代碼如下:
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); //驗(yàn)證保存的文件擴(kuò)展名是否為pdf,doc,docx,xls. if ((extension == ".pdf") || (extension == ".doc") || (extension == ".docx") || (extension == ".xls")) { //驗(yàn)證文件的大小 if (file.ContentLength <= 31457280) { //表里插入數(shù)據(jù) 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("數(shù)據(jù)已添加"); } } else { Response.Write("文件大小無(wú)效"); return; } } else { Response.Write("無(wú)效文件"); return; } } }
運(yùn)行結(jié)果如圖:
這時(shí)瀏覽文件夾,就可以添加我們的文件了。點(diǎn)擊導(dǎo)入,成功添加。
如果選擇了不符合規(guī)則的文件后,則會(huì)顯示:
返回?cái)?shù)據(jù)庫(kù),這時(shí)PDF、Word 和Excel文件已經(jīng)成功添加到數(shù)據(jù)庫(kù)啦。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C#實(shí)現(xiàn)pdf導(dǎo)出 .Net導(dǎo)出pdf文件
- ASP.NET實(shí)現(xiàn)將word文檔轉(zhuǎn)換成pdf的方法
- asp.net 按指定模板導(dǎo)出word,pdf實(shí)例代碼
- Asp.net實(shí)現(xiàn)直接在瀏覽器預(yù)覽Word、Excel、PDF、Txt文件(附源碼)
- ASP.NET MVC 項(xiàng)目直接預(yù)覽PDF文件
- 詳解開(kāi)源免費(fèi)且穩(wěn)定實(shí)用的.NET PDF打印組件itextSharp(.NET組件介紹之八)
- asp.net實(shí)現(xiàn)將ppt文檔轉(zhuǎn)換成pdf的方法
- 如何使用Rotativa在ASP.NET Core MVC中創(chuàng)建PDF詳解
相關(guān)文章
設(shè)置默認(rèn)Ajax操作cache and error
設(shè)置默認(rèn)Ajax操作cache and error,需要的朋友可以參考一下2013-02-02jquery中如何獲得服務(wù)器控件實(shí)現(xiàn)思路
jquery中如何獲得服務(wù)器控件,很多新手朋友對(duì)此比較陌生,接下來(lái)為您介紹解決方法,感興趣的朋友可以了解下哦2013-01-01Asp.net MVC中獲取控制器的名稱(chēng)的方法
這篇文章主要介紹了Asp.net MVC中獲取控制器的名稱(chēng)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10Asp.net頁(yè)面中調(diào)用soapheader進(jìn)行驗(yàn)證的操作步驟
這篇文章主要介紹了Asp.net頁(yè)面中調(diào)用soapheader進(jìn)行驗(yàn)證的操作步驟,感興趣的小伙伴們可以參考一下2016-04-04ASP.NET MVC實(shí)現(xiàn)橫向展示購(gòu)物車(chē)
這篇文章介紹了ASP.NET MVC實(shí)現(xiàn)橫向展示購(gòu)物車(chē)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09淺析GridView中顯示時(shí)間日期格式的問(wèn)題
下面小編就為大家?guī)?lái)一篇淺析GridView中顯示時(shí)間日期格式的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05