ASP.NET上傳文件的示例分析,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)公司公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元巧家做網(wǎng)站,已為上家服務(wù),為巧家各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
一、ASP.NET上傳文件數(shù)據(jù)庫。
存儲(chǔ)文件的數(shù)據(jù)庫中的字段為jimage,類型為image。
在代碼中定義類型為byte[]的一個(gè)變量buf,在上傳組件的PostFile中,從它的InputStream讀出字節(jié)數(shù)組,將buf賦給數(shù)據(jù)字段jimage就可以了。
int len = this.File1.PostedFile.ContentLength; byte[] buf = new byte[len]; Stream i = this.File1.PostedFile.InputStream; i.Read(buf,0,buf.Length); news.jimage=buf; //news為新聞?lì)?,jimage為它的圖片屬性,即對(duì)應(yīng)表中的image i.Close();
顯示圖像:
圖片的顯示也很簡單,在Persister中注意一下:
SqlDataReader reader=SqlHelper.ExecuteReader ("select jimage from news"); if( reader.Read() ) { news.jimage=(byte[])reader["jimage"]; } reader.Close();
得到byte[]的內(nèi)容,要顯示也比較簡單,在Page_Load()方法中加兩句話即可:
Response.ContentType="image/jpeg"; Response.BinaryWrite(ti.content);
這樣就可以輸出圖像了,如果想對(duì)圖像做一點(diǎn)調(diào)整,如旋轉(zhuǎn),轉(zhuǎn)換格式、獲得圖片格式(是jpg 還是 gif),請(qǐng)參考下面代碼:
//同樣,聲明輸出不是HTML而是image Response.ContentType="image/jpeg"; //從byte[]得到一個(gè)image對(duì)象 System.Drawing.Image bmap = Bitmap.FromStream (new MemoryStream(ti.content)); //操作一下這個(gè)圖像 bmap.RotateFlip(RotateFlipType.Rotate180FlipY); //輸出到頁面上 bmap.Save(Response.OutputStream,System. Drawing.Imaging.ImageFormat.Jpeg); //釋放image bmap.Dispose();
要顯示圖片在某一個(gè)image控件上,可采用下法:
要顯示圖片的位置放一個(gè)image控件然后將它的src指向這個(gè)頁面就行了!
例如:
頁面:ViewImage.aspx
〈%@Import Namespace="System.IO"% 〉 〈%@Import Namespace="System.Data"% 〉 〈%@Import Namespace="System.Data.SqlClient"% 〉 〈%@ Page Language="C#" Debug="True" % 〉 〈script runat="server" 〉 private void Page_Load(Object sender, System.EventArgs e) { string imgid =Request.QueryString["UserID"]; string connstr="data source=(local);initial catalog=Test;integrated security=SSPI;persist security info=True;packet size=4096"; string sql="SELECT IMGTITLE,imgdata, imgtype FROM ImageStore WHERE id = '"+ imgid "'"; SqlConnection connection = new SqlConnection(connstr); SqlCommand command = new SqlCommand(sql, connection); connection.Open(); SqlDataReader dr = command.ExecuteReader(); if(dr.Read()) { Response.ContentType = dr["imgtype"].ToString(); Response.BinaryWrite( (byte[]) dr["imgdata"] ); Response.Write(dr["IMGTITLE"].ToString()); } connection.Close(); } 〈/script 〉
顯示圖片的頁面上放一個(gè)image控件imgZYF 在后代碼中寫:imgZYF.ImageUrl =“ViewImage.aspx?UserID=" +userId
二、ASP.NET上傳文件到服務(wù)器的磁盤:
頁面文件:upload01.aspx
〈%@Pagelanguage="c#"Codebehind="upload01.aspx.cs" AutoEventWireup="false"Inherits="upload01.upload01"%〉 〈!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"〉 〈HTML〉 〈HEAD〉 〈title〉上傳到磁盤〈/title〉 〈/HEAD〉 〈body〉 〈formid="Form1"method="post"runat="server"〉 〈TABLEheight="300"cellSpacing="1"cellPadding="1" width="500"border="0"class="bigtable-bj" align="center"〉 〈TR〉 〈TD〉〈FONTface="宋體"〉 〈TABLEid="Table1"style="WIDTH:384px;HEIGHT:54px" cellSpacing="1"cellPadding="1"width="384" border="0"align="center"〉 〈TR〉 〈TD〉選擇文件:〈/TD〉 〈TD〉〈INPUTtype="file"id="myfile"runat="server"〉〈/TD〉 〈/TR〉 〈TR〉 〈TDstyle="HEIGHT:21px"〉輸入備注:〈/TD〉 〈TDstyle="HEIGHT:21px"〉 〈asp:TextBoxid="TextBox1"runat="server"〉〈/asp:TextBox〉〈/TD〉 〈/TR〉 〈TR〉 〈TD〉〈/TD〉 〈TD〉〈INPUTtype="button"value="上傳文件" runat="server"id="Button1"name="Button1"〉 〈INPUTtype="submit"value="清空選擇"〉〈/TD〉 〈/TR〉 〈/TABLE〉 〈/FONT〉 〈/TD〉 〈/TR〉 〈/TABLE〉 〈/form〉 〈/body〉 〈/HTML〉 后置代碼:upload01.aspx usingSystem; usingSystem.Collections; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Web; usingSystem.Web.SessionState; usingSystem.Web.UI; usingSystem.Web.UI.WebControls; usingSystem.Web.UI.HtmlControls; namespaceupload01 { publicclassupload01:System.Web.UI.Page { protectedSystem.Web.UI.HtmlControls.HtmlInputButtonButton1; protectedSystem.Web.UI.WebControls.TextBoxTextBox1; protectedSystem.Web.UI.HtmlControls.HtmlInputFilemyfile; privatevoidPage_Load(objectsender,System.EventArgse) { //昨夜風(fēng)www.zuoyefeng.com } privatevoidButton1_ServerClick (objectsender,System.EventArgse) { //取得客戶端路徑及文件名 stringstr=myfile.PostedFile.FileName; //取得ASP.NET上傳文件類型,如.jpg stringfilename2=str.Substring (str.LastIndexOf(".")).ToString().Trim(); //取得ASP.NET上傳文件大小,單位K doublefilesize=myfile.PostedFile.ContentLength/1024.00; //以時(shí)間刻度定義文件名 stringfilename1=DateTime.Now.Ticks.ToString(); myfile.PostedFile.SaveAs(Server.MapPath ("/upload01/"+filename1+filename2)); //將文件名及相關(guān)信息存到數(shù)據(jù)庫中 } } }
將ASP.NET上傳文件到磁盤中,在表中將文件地址或路徑記錄下來,這樣就可以在后面的程序來引用了。
關(guān)于ASP.NET上傳文件的示例分析問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
本文名稱:ASP.NET上傳文件的示例分析
文章分享:http://redsoil1982.com.cn/article26/gssccg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、關(guān)鍵詞優(yōu)化、商城網(wǎng)站、電子商務(wù)、自適應(yīng)網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)