偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

ASP.NET數(shù)據(jù)庫圖片上傳與讀取的實現(xiàn)

開發(fā) 后端
本文介紹了ASP.NET數(shù)據(jù)庫圖片上傳與讀取功能的實現(xiàn)方法。

以下代碼實現(xiàn)ASP.NET數(shù)據(jù)庫圖片上傳與讀取的功能,詳細見代碼內(nèi)部的注解。

開發(fā)環(huán)境:Window 2000、SQLServer2000、.Net Framework SDK正式版

開發(fā)語言:C#、ASP.Net

簡介:ASP.NET數(shù)據(jù)庫圖片上傳與讀取

作者:engine

說明:在ASP中,我們用Request.TotalBytes、Request.BinaryRead()來上傳圖片,這個可惡的BinaryRead()方法非常笨,單個文件上傳倒沒什么大事,單如果多個圖片上??删突ù髿饬α恕《F(xiàn)在ASP.Net中將會把解決以前ASP中文件上傳的種種問題,使你在ASP.Net中輕輕松松開發(fā)出功能強大的上傳程序,下面大家看看例子啦。

注意:由于作者水平有限,錯誤是難免的,如發(fā)現(xiàn)錯誤請指教

首先在SQL Server中建立一個圖片存儲的數(shù)庫表,ImageData Column為圖象二進制數(shù)據(jù)儲存字段,ImageContentType Column為圖象文件類型記錄字段,ImageDescription Column為儲蓄圖象文件說明字段,ImageSize Column為儲存圖象文件長度字段,結(jié)構(gòu)如下:

  1. CREATE TABLE [dbo].[ImageStore] (  
  2.     [ImageID] [int] IDENTITY (1, 1) NOT NULL ,  
  3.     [ImageData] [image] NULL ,                               
  4.     [ImageContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,  
  5.     [ImageDescription] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,  
  6.     [ImageSize] [intNULL   
  7. ON [PRIMARY] TEXTIMAGE_ON [PRIMARY

UpLoadImage.aspx程序內(nèi)容如下:

  1. < %@ Page Inherits="UploadImage.UploadImage" SRC="UpLoadImage.cs" Language="C#"%> 
  2. < HTML>< title>上傳圖片< /title> 
  3. < BODY bgcolor="#FFFFFF"> 
  4. < FORM ENCTYPE="multipart/form-data" RUNAT="server" ID="Form1"> 
  5. < TABLE RUNAT="server" WIDTH="700" ALIGN="left" ID="Table1" cellpadding="0" cellspacing="0" border="0"> 
  6. < TR> 
  7.      < TD>上傳圖片(選擇你要上傳的圖片)< /TD> 
  8. < TD> 
  9. < INPUT TYPE="file" ID="UP_FILE" RUNAT="server" STYLE="Width:320" ACCEPT="text/*" NAME="UP_FILE"> 
  10. < /TD> 
  11. < /TR> 
  12. < TR> 
  13.      < TD>   
  14.       文件說明(添加上傳圖片說明,如:作者、出處)  
  15.      < /TD> 
  16. < TD> 
  17. < asp:TextBox RUNAT="server" WIDTH="239" ID="txtDescription" MAINTAINSTATE="false" /> 
  18. < /TD> 
  19. < /TR> 
  20. < TR> 
  21. < TD> 
  22. < asp:Label RUNAT="server" ID="txtMessage" FORECOLOR="red" MAINTAINSTATE="false" /> 
  23. < /TD> 
  24. < TD> 
  25. < asp:Button RUNAT="server" WIDTH="239" ONCLICK="Button_Submit" TEXT="Upload Image" /> 
  26. < /TD> 
  27. < /TR> 
  28. < /TABLE> 
  29. < /FORM> 
  30. < /BODY> 
  31. < /HTML> 

-------------------------------------------------------------------

UpLoadImage.cs程序內(nèi)容如下:

  1. using System;  
  2. using System.Web;  
  3. using System.IO;  
  4. using System.Data;  
  5. using System.Data.SqlClient;  
  6. using System.Web.UI;  
  7. using System.Web.UI.WebControls;  
  8. using System.Web.UI.HtmlControls;   
  9. namespace UploadImage  
  10. {   
  11. public class UploadImage : Page {   
  12. protected HtmlInputFile UP_FILE;          //HtmlControl、WebControls控件對象  
  13. protected TextBox txtDescription;  
  14. protected Label txtMessage;  
  15. protected Int32 FileLength = 0;          //記錄文件長度變量   
  16. protected void Button_Submit(System.Object sender, System.EventArgs e) {  
  17. HttpPostedFile UpFile = UP_FILE.PostedFile;  //HttpPostedFile對象,用于讀取圖象文件屬性  
  18. FileLength = UpFile.ContentLength;     //記錄文件長度   
  19. try {  
  20. if (FileLength == 0) {   //文件長度為零時  
  21. txtMessage.Text = "< b>請你選擇你要上傳的文件< /b>";   
  22. else {  
  23. Byte[] FileByteArray = new Byte[FileLength];   //圖象文件臨時儲存Byte數(shù)組  
  24. Stream StreamObject = UpFile.InputStream;      //建立數(shù)據(jù)流對像。讀取圖象文件數(shù)據(jù),F(xiàn)ileByteArray為數(shù)據(jù)儲存體,0為數(shù)據(jù)指針位置、FileLnegth為數(shù)據(jù)長度  
  25. StreamObject.Read(FileByteArray,0,FileLength);     
  26. //建立SQL Server鏈接  
  27. SqlConnection Con = new SqlConnection("Data Source=Localhost;Initial Catalog=testdb;User ID=sa;Pwd=;");  
  28. String SqlCmd = "INSERT INTO ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@Image, @ContentType, @ImageDescription, @ImageSize)";  
  29. SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);  
  30. CmdObj.Parameters.Add("@Image",SqlDbType.Binary, FileLength).Value = FileByteArray;  
  31. CmdObj.Parameters.Add("@ContentType", SqlDbType.VarChar,50).Value = UpFile.ContentType;  //記錄文件類型  
  32. //把其它單表數(shù)據(jù)記錄上傳  
  33. CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar,200).Value = txtDescription.Text;  
  34. //記錄文件長度,讀取時使用  
  35. CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt,8).Value = UpFile.ContentLength;  
  36. Con.Open();  
  37. CmdObj.ExecuteNonQuery();   
  38. Con.Close();  
  39. txtMessage.Text = "< p>< b>OK!你已經(jīng)成功上傳你的圖片< /b>";//提示上傳成功  
  40. }  
  41. catch (Exception ex) {  
  42. txtMessage.Text = ex.Message.ToString();  
  43. }}}} 

--

好了,ASP.NET數(shù)據(jù)庫圖片上傳已經(jīng)完成,現(xiàn)在還要干什么呢?當(dāng)然是在數(shù)據(jù)庫中讀取及顯示在Web頁中啦,請看以下程序:

ReadImage.aspx程序內(nèi)容如下:

/----------------------------------------------------------------------- 

  1. < %@ Page Inherits="ReadImage.MainDisplay" SRC="ReadImage.cs"%> 

--

ReadImage.cs程序內(nèi)容如下:

  1. using System;  
  2. using System.Data;  
  3. using System.Data.SqlClient;  
  4. using System.Web.UI;  
  5. using System.Web.UI.WebControls;  
  6. using System.Web.UI.HtmlControls;  
  7. namespace ReadImage {  
  8. public class MainDisplay : System.Web.UI.Page {  
  9. public void Page_Load(System.Object sender, System.EventArgs e) {  
  10.     int ImgID = Convert.ToInt32(Request.QueryString["ImgID"]);  //ImgID為圖片ID   
  11.     //建立數(shù)據(jù)庫鏈接  
  12.     SqlConnection Con = new SqlConnection("Data Source=KING;Initial Catalog=testdb;User ID=sa;Pwd=;");  
  13.     String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";  
  14.     SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);  
  15.     CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;  
  16.     Con.Open();  
  17.     SqlDataReader SqlReader = CmdObj.ExecuteReader();  
  18.     SqlReader.Read();       
  19.     Response.ContentType = (string)SqlReader["ImageContentType"];//設(shè)定輸出文件類型  
  20.     //輸出圖象文件二進制數(shù)制  
  21.     Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);       
  22.     Response.End();  
  23.     Con.Close();  
  24.     //很簡單吧^_^  
  25.  }  
  26. }  

***,我們當(dāng)然要把它在Web頁面顯示出來啦

ShowImage.hml

  1. < html> 
  2. < body> 
  3. 這個是從數(shù)據(jù)庫讀取出來的圖象:< img src="ReadImage.aspx?ImgID=1"> 
  4. < body> 
  5. < /html> 

------------------------------------------------------------------

***,這程序當(dāng)然還很多改進之處,希望大家多想想多編編一定可以寫出更多的圖像上傳程序

這樣就實現(xiàn)了ASP.NET數(shù)據(jù)庫圖片存儲與讀取的功能。

【編輯推薦】

  1. ASP.NET頁面的CheckBoxList組件
  2. 簡單介紹ASP應(yīng)用程序
  3. ASP.NET的IScriptControl
  4. 詳解ASP.NET身份驗證服務(wù)
  5. 概述ASP.NET安全
責(zé)任編輯:yangsai 來源: 網(wǎng)絡(luò)
相關(guān)推薦

2009-07-21 13:40:24

ASP.NET上傳圖片顯示圖片

2009-08-12 11:04:38

ASP.NET和SQL

2009-07-31 16:51:59

ASP.NET數(shù)據(jù)庫驅(qū)

2009-07-28 14:16:31

ASP.NET與MyS

2009-07-31 09:57:47

ASP.NET數(shù)據(jù)庫緩

2009-02-23 15:20:03

SQL Server數(shù)據(jù)庫ASP.NET

2009-07-28 17:36:21

ASP.NET數(shù)據(jù)庫連

2009-07-29 09:12:31

ASP.NET數(shù)據(jù)庫連

2009-07-29 10:02:49

ASP.NET上傳

2009-07-23 10:37:43

2009-12-03 10:52:42

2009-07-31 16:09:23

ASP.NET數(shù)據(jù)庫圖

2009-08-11 12:52:05

ASP.NET數(shù)據(jù)庫程

2009-08-05 15:40:49

ASP.NET連接數(shù)據(jù)

2024-05-20 13:06:18

2010-05-25 08:49:33

連接MySQL

2009-09-13 22:35:12

ASP.NET數(shù)據(jù)庫

2009-07-27 17:58:10

ASP.NET數(shù)據(jù)庫編

2011-08-01 23:34:34

ASP.NETOracle

2009-08-04 10:02:36

中國站長站
點贊
收藏

51CTO技術(shù)棧公眾號