亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        二進(jìn)制文件在數(shù)據(jù)庫中的保存

        2012-04-29 10:39:12李閩
        電腦知識與技術(shù) 2012年18期
        關(guān)鍵詞:數(shù)據(jù)庫

        李閩

        摘要:文章介紹了在ASP.NET環(huán)境下,對于SQL server數(shù)據(jù)庫,存儲大型二進(jìn)制對象的方法。通過HttpPostedfile類的InputStream屬性獲得Stream對象,用Stream對象讀取欲上傳文件內(nèi)容。建立數(shù)據(jù)庫連接,將文件存入數(shù)據(jù)庫的二進(jìn)制數(shù)據(jù)類型中。

        關(guān)鍵詞:二進(jìn)制文件;數(shù)據(jù)庫;HttpPostedfile類;Stream對象;上傳

        中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)18-4410-02

        Binary Files in the Database Storage

        LI Min

        (Suzhou Art, Design Technology Institute, Suzhou 215000, China )

        Abstract: This paper introduces the ASP.NET environment in SQL server database to store large binary objects method. By HttpPosted file class InputStream property to a Stream object, use the Stream object to read to upload the contents of the file. Establish a database con nection, the binary data type of the file stored in the database.

        Key words: binary files; database; class HttpPostedfileL; object StreamL; upload

        上傳到網(wǎng)站的文件有多種形式,有圖形圖像文件、聲音文件、視頻文件、文該文件等。這些文件基本上是保存在數(shù)據(jù)庫中。文件在數(shù)據(jù)庫中的存儲主要有兩種方式,一種是將文件的路徑保存到數(shù)據(jù)庫,文件保存到預(yù)先指定的位置。另一種是直接將文件以二進(jìn)制形式保存到數(shù)據(jù)庫中。該文主要介紹第二種保存方式。

        在asp.net環(huán)境下,將二進(jìn)制數(shù)據(jù)保存到數(shù)據(jù)庫中,要應(yīng)用到HttpPostedFile類的InputStream屬性、Stream類的Read方法和Byte數(shù)據(jù)類型。

        對于一個要上傳的文件,用HttpPostedFile類的InputStream屬性獲取一個Stream對象,該對象就指向這個上傳文件,可以用來讀取文件的內(nèi)容。

        HttpPostFile hp=FileUpload1.PostedFile;//創(chuàng)建訪問上傳文件的對象

        Stream sr=hp.InputStream;//創(chuàng)建Stream對象

        從Stream對象中用Read方法讀取相應(yīng)的數(shù)據(jù)。

        public abstract int Read(

        byte[] buffer,

        int offset,

        int count

        )

        Read()方法可以把特定數(shù)量的字節(jié)讀入到一個數(shù)組中(就是第一個參數(shù)buffer),返回實際讀取的字節(jié)數(shù)。如果值為0,表示到了流的末尾。第二個參數(shù)是一個偏移量,用它可以要求Read操作的數(shù)據(jù)是從數(shù)組的哪個元素開始填充,而不一定是從第一個元素開始。第三個參數(shù)是要讀入數(shù)組的字節(jié)數(shù)。代碼如下。

        HttpFileCollection MyFileCollection;

        HttpPostedFile MyFile;

        int FileLen;

        MyFileCollection = Request.Files;

        MyFile = MyFileCollection[0];

        FileLen = MyFile.ContentLength;

        byte[] input = new byte[FileLen];//建立byte數(shù)組

        MyStream = MyFile.InputStream;//初始化stream.

        MyStream.Read(input, 0, FileLen);//讀文件到byte數(shù)組

        for (int Loop1 = 0; Loop1 < FileLen; Loop1++)

        MyString = MyString + input[Loop1].ToString();

        //將數(shù)據(jù)從數(shù)組copy到字符串中

        把二進(jìn)制文件往數(shù)據(jù)庫存儲時,要先建立數(shù)據(jù)庫連接,以SQL Server為例,

        String Constr="server=dataserver;user id =sa;pwd=;database=db_ADO";

        SqlConnection con=new SqlConnection(Constr);

        string SqlStr="select *from mydata";

        SqlDataAdapter ada=new SqlDataAdapter (SqlStr,con);

        con.Open(); //打開數(shù)據(jù)庫連接

        SQL Server存儲二進(jìn)制數(shù)據(jù)使用的數(shù)據(jù)類型有binary、varbinary、image,用byte類型的數(shù)組作為二進(jìn)制參數(shù)的傳遞。主要代碼如下:

        If(this.FileUpload1.PostedFile.FileName!="")

        {

        string ImgPath=FileUpload1.PostedFile.FileName;

        string ImgName=ImgPath.Substring(ImgPath.LastIndexOf("\")+1);

        string ImgExtend=ImgPath.Substring(ImgPath.LastIndexOf(".")+1);

        FileLen=this.FileUpload1.PostedFile.ContentLength;

        Byte[] FileData=new Byte[FileLen];

        HttpPostedFile hp=FileUpload1.PostedFile;

        Stream st=hp.InputStream;

        sr.Read(FileData,0,FileLen);

        String Constr="server=dataserver;user id =sa;pwd=;database=db_ADO";

        SqlConnection con=new SqlConnection(Constr);

        string SqlStr="select *from mydata";

        SqlDataAdapter ada=new SqlDataAdapter (SqlStr,con);

        con.Open();

        SqlCommand com=new SqlCommand("INSERT INTO tb_fileUp(name) VALUES(@imgdata)",con);

        com.Parameters.Add("@imgdata",SqlDbType.Image);

        com.Parameters["@imgdata"].Value=Filedata;

        com.ExecuteNonQuery();

        }

        參考文獻(xiàn):

        [1]劉麗霞.零基礎(chǔ)學(xué)C# 3.0[M].北京:機械工業(yè)出版社,2009.

        [2]鄭阿奇.ASP.NET 3.5實用教程[M].北京:電子工業(yè)出版社,2009.

        [3]吳戈.SQL Server 2008學(xué)習(xí)筆記[M].北京:人民郵電出版社,2009.

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        數(shù)據(jù)庫
        財經(jīng)(2015年3期)2015-06-09 17:41:31
        數(shù)據(jù)庫
        財經(jīng)(2014年21期)2014-08-18 01:50:18
        數(shù)據(jù)庫
        財經(jīng)(2014年6期)2014-03-12 08:28:19
        數(shù)據(jù)庫
        財經(jīng)(2013年6期)2013-04-29 17:59:30
        AV无码中文字幕不卡一二三区| 日本高清视频在线一区二区三区| 亚洲无人区一码二码国产内射| 久久天堂精品一区二区三区四区| 超碰cao已满18进入离开官网| а中文在线天堂| 杨幂Av一区二区三区| 日韩精品久久午夜夜伦鲁鲁| 欧美熟妇另类久久久久久不卡 | 日本成人中文字幕亚洲一区| 国产av在线观看久久| 99久久综合精品五月天| 麻豆久久五月国产综合| 一区二区三区在线日本| 亚洲成av人片女在线观看| 精产国品一二三产品蜜桃| 无尽动漫性视频╳╳╳3d| 四虎影视国产884a精品亚洲| 手机av在线播放网站| 国产电影无码午夜在线播放| 国产精品 高清 尿 小便 嘘嘘| 狼友AV在线| 偷拍美女一区二区三区视频| 午夜精品久久99蜜桃| 国产婷婷色一区二区三区在线 | 97中文乱码字幕在线| 少妇被又大又粗又爽毛片久久黑人 | 免费看男女啪啪的视频网站| 我和丰满妇女激情视频| 日韩精品视频一区二区三区| 国产精品久久久久久久久鸭| 老肥熟女老女人野外免费区| 精品女人一区二区三区| 国产高清在线一区二区不卡| 夜夜添夜夜添夜夜摸夜夜摸| 午夜高清福利| 中文字幕无码免费久久| 国产国拍精品亚洲av在线观看 | 亚洲精品综合中文字幕组合| 成 人 免 费 黄 色| 成人无码午夜在线观看|