自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET上傳文件面面觀

開(kāi)發(fā) 后端
本文向您介紹ASP.NET上傳文件,主要講解上傳到數(shù)據(jù)庫(kù)、 上傳到服務(wù)器的磁盤(pán)兩大特點(diǎn)!

一、ASP.NET上傳文件數(shù)據(jù)庫(kù)。

存儲(chǔ)文件的數(shù)據(jù)庫(kù)中的字段為jimage,類型為image。

在代碼中定義類型為byte[]的一個(gè)變量buf,在上傳組件的PostFile中,從它的InputStream讀出字節(jié)數(shù)組,將buf賦給數(shù)據(jù)字段jimage就可以了。

  1. int len = this.File1.PostedFile.ContentLength;   
  2. byte[] buf = new byte[len];   
  3. Stream i = this.File1.PostedFile.InputStream;   
  4. i.Read(buf,0,buf.Length);   
  5. news.jimage=buf;   
  6. //news為新聞?lì)?,jimage為它的圖片屬性,即對(duì)應(yīng)表中的image   
  7. i.Close();   

顯示圖像:

圖片的顯示也很簡(jiǎn)單,在Persister中注意一下:

  1. SqlDataReader reader=SqlHelper.ExecuteReader  
  2. ("select jimage from news");  
  3.    
  4. if( reader.Read() )  
  5. {  
  6.  news.jimage=(byte[])reader["jimage"];  
  7. }  
  8. reader.Close(); 

得到byte[]的內(nèi)容,要顯示也比較簡(jiǎn)單,在Page_Load()方法中加兩句話即可:

  1. Response.ContentType="image/jpeg";  
  2. Response.BinaryWrite(ti.content); 

這樣就可以輸出圖像了,如果想對(duì)圖像做一點(diǎn)調(diào)整,如旋轉(zhuǎn),轉(zhuǎn)換格式、獲得圖片格式(是jpg 還是 gif),請(qǐng)參考下面代碼:

  1. //同樣,聲明輸出不是HTML而是image  
  2. Response.ContentType="image/jpeg";  
  3. //從byte[]得到一個(gè)image對(duì)象  
  4. System.Drawing.Image bmap = Bitmap.FromStream  
  5. (new MemoryStream(ti.content));  
  6. //操作一下這個(gè)圖像  
  7. bmap.RotateFlip(RotateFlipType.Rotate180FlipY);  
  8. //輸出到頁(yè)面上  
  9. bmap.Save(Response.OutputStream,System.  
  10. Drawing.Imaging.ImageFormat.Jpeg);  
  11. //釋放image  
  12. bmap.Dispose(); 

要顯示圖片在某一個(gè)image控件上,可采用下法:

要顯示圖片的位置放一個(gè)image控件然后將它的src指向這個(gè)頁(yè)面就行了!

例如:

頁(yè)面:ViewImage.aspx

  1. 〈%@Import Namespace="System.IO"%  〉  
  2. 〈%@Import Namespace="System.Data"%  〉  
  3. 〈%@Import Namespace="System.Data.SqlClient"%  〉  
  4. 〈%@ Page Language="C#" Debug="True" %  〉  
  5. 〈script runat="server"  〉  
  6. private void Page_Load(Object sender, System.EventArgs e)  
  7. {  
  8. string imgid =Request.QueryString["UserID"];  
  9. string connstr="data source=(local);initial   
  10. catalog=Test;integrated security=SSPI;persist   
  11. security info=True;packet size=4096";  
  12. string sql="SELECT IMGTITLE,imgdata,   
  13. imgtype FROM ImageStore WHERE id = '"+ imgid  "'";  
  14.  
  15.  
  16. SqlConnection connection = new SqlConnection(connstr);  
  17. SqlCommand command = new SqlCommand(sql, connection);  
  18. connection.Open();  
  19. SqlDataReader dr = command.ExecuteReader();  
  20.  
  21. if(dr.Read())  
  22. {  
  23. Response.ContentType = dr["imgtype"].ToString();  
  24. Response.BinaryWrite( (byte[]) dr["imgdata"] );  
  25. Response.Write(dr["IMGTITLE"].ToString());  
  26. }  
  27. connection.Close();  
  28. }  
  29. 〈/script  〉  

顯示圖片的頁(yè)面上放一個(gè)image控件imgZYF 在后代碼中寫(xiě):imgZYF.ImageUrl =“ViewImage.aspx?UserID=" +userId


二、ASP.NET上傳文件到服務(wù)器的磁盤(pán):

頁(yè)面文件:upload01.aspx

  1. 〈%@Pagelanguage="c#"Codebehind="upload01.aspx.cs" 
  2. AutoEventWireup="false"Inherits="upload01.upload01"%〉  
  3. 〈!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"〉  
  4. 〈HTML〉  
  5. 〈HEAD〉  
  6. 〈title〉上傳到磁盤(pán)〈/title〉  
  7. 〈/HEAD〉  
  8. 〈body〉  
  9. 〈formid="Form1"method="post"runat="server"〉  
  10. 〈TABLEheight="300"cellSpacing="1"cellPadding="1" 
  11. width="500"border="0"class="bigtable-bj" 
  12. align="center"〉  
  13. 〈TR〉  
  14. 〈TD〉〈FONTface="宋體"〉  
  15. 〈TABLEid="Table1"style="WIDTH:384px;HEIGHT:54px" 
  16. cellSpacing="1"cellPadding="1"width="384" 
  17. border="0"align="center"〉  
  18. 〈TR〉  
  19. 〈TD〉選擇文件:〈/TD〉  
  20. 〈TD〉〈INPUTtype="file"id="myfile"runat="server"〉〈/TD〉  
  21. 〈/TR〉  
  22. 〈TR〉  
  23. 〈TDstyle="HEIGHT:21px"〉輸入備注:〈/TD〉  
  24. 〈TDstyle="HEIGHT:21px"〉  
  25. 〈asp:TextBoxid="TextBox1"runat="server"〉〈/asp:TextBox〉〈/TD〉  
  26. 〈/TR〉  
  27. 〈TR〉  
  28. 〈TD〉〈/TD〉  
  29. 〈TD〉〈INPUTtype="button"value="上傳文件" 
  30. runat="server"id="Button1"name="Button1"〉   
  31. 〈INPUTtype="submit"value="清空選擇"〉〈/TD〉  
  32. 〈/TR〉  
  33. 〈/TABLE〉  
  34. 〈/FONT〉  
  35. 〈/TD〉  
  36. 〈/TR〉  
  37. 〈/TABLE〉  
  38. 〈/form〉  
  39. 〈/body〉  
  40. 〈/HTML〉  
  41. 后置代碼:upload01.aspx  
  42. usingSystem;  
  43. usingSystem.Collections;  
  44. usingSystem.ComponentModel;  
  45. usingSystem.Data;  
  46. usingSystem.Drawing;  
  47. usingSystem.Web;  
  48. usingSystem.Web.SessionState;  
  49. usingSystem.Web.UI;  
  50. usingSystem.Web.UI.WebControls;  
  51. usingSystem.Web.UI.HtmlControls;  
  52. namespaceupload01  
  53. {  
  54. publicclassupload01:System.Web.UI.Page  
  55. {  
  56. protectedSystem.Web.UI.HtmlControls.HtmlInputButtonButton1;  
  57. protectedSystem.Web.UI.WebControls.TextBoxTextBox1;  
  58. protectedSystem.Web.UI.HtmlControls.HtmlInputFilemyfile;  
  59. privatevoidPage_Load(objectsender,System.EventArgse)  
  60. {  
  61. //昨夜風(fēng)www.zuoyefeng.com  
  62. }  
  63. privatevoidButton1_ServerClick  
  64. (objectsender,System.EventArgse)  
  65. {  
  66. //取得客戶端路徑及文件名  
  67. stringstr=myfile.PostedFile.FileName;  
  68. //取得ASP.NET上傳文件類型,如.jpg  
  69. stringfilename2=str.Substring 
  70. (str.LastIndexOf(".")).ToString().Trim();  
  71. //取得ASP.NET上傳文件大小,單位K  
  72. doublefilesize=myfile.PostedFile.ContentLength/1024.00;  
  73. //以時(shí)間刻度定義文件名  
  74. stringfilename1=DateTime.Now.Ticks.ToString();  
  75. myfile.PostedFile.SaveAs(Server.MapPath  
  76. ("/upload01/"+filename1+filename2));  
  77. //將文件名及相關(guān)信息存到數(shù)據(jù)庫(kù)中  
  78. }  
  79. }  
  80. }  

將ASP.NET上傳文件到磁盤(pán)中,在表中將文件地址或路徑記錄下來(lái),這樣就可以在后面的程序來(lái)引用了。

【編輯推薦】

  1. ASP.NET環(huán)境下的Shell函數(shù)
  2. 在ASP.NET中向數(shù)據(jù)庫(kù)批量插入數(shù)據(jù)
  3. ASP.NET用Post方式向網(wǎng)頁(yè)發(fā)送數(shù)據(jù)
  4. ASP.NET 2.0部署WEB應(yīng)用程序淺析
  5. ASP.NET中的HttpWorkerRequest對(duì)像
  6. 介紹ASP.NET MVC框架
責(zé)任編輯:冰荷 來(lái)源: 51CTO.com
相關(guān)推薦

2013-03-25 13:52:39

SDN軟件定義網(wǎng)絡(luò)Hybird

2020-04-08 09:57:53

漏洞安全漏洞漏洞管理

2019-09-11 17:16:34

DockerGitHubWindows

2009-12-30 15:10:44

摩卡

2010-01-13 10:34:23

VB.NET局部靜態(tài)變

2009-02-16 09:47:00

IPTV技術(shù)多媒體運(yùn)營(yíng)

2023-03-24 07:31:58

Oracle兼容性產(chǎn)品

2011-05-30 17:31:26

自動(dòng)化測(cè)試

2013-07-22 17:49:52

Ubuntu虛擬機(jī)

2010-09-01 17:13:56

無(wú)線局域網(wǎng)WLAN

2009-07-21 15:38:31

2009-10-28 11:35:25

Linux服務(wù)器優(yōu)化

2009-07-29 10:02:49

ASP.NET上傳

2009-07-14 10:56:21

MyEclipse快捷插件

2010-07-08 10:03:39

動(dòng)態(tài)語(yǔ)言PythonRuby

2015-07-22 09:54:48

互聯(lián)網(wǎng)+發(fā)達(dá)國(guó)家

2022-02-22 06:11:46

數(shù)字化轉(zhuǎn)型企業(yè)云數(shù)據(jù)庫(kù)

2009-10-30 14:03:59

ASP.NET上傳文件

2009-07-24 15:07:56

ASP.NET上傳文件

2009-07-27 17:32:39

Web ServiceASP.NET
點(diǎn)贊
收藏

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