国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

Image顯示服務(wù)器上任意絕對(duì)路徑下的圖片(采用二進(jìn)制流實(shí)現(xiàn))

2024-07-10 13:17:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
我要實(shí)現(xiàn)這樣一個(gè)需求:數(shù)據(jù)庫(kù)中存儲(chǔ)的是照片所在的絕對(duì)路徑(可以不在系統(tǒng)所在路徑下),Image控件動(dòng)態(tài)加載路徑下的圖片。

看到這個(gè)題目,有些人會(huì)說(shuō),這還不簡(jiǎn)單啊,將URL直接設(shè)置成絕對(duì)路徑不就行了啊。我只能說(shuō),如果你這樣說(shuō),那么只能說(shuō)明你沒(méi)有經(jīng)過(guò)思考,甚至于,還沒(méi)有搞清楚Web開(kāi)發(fā)中前臺(tái)代碼和后臺(tái)代碼到底是什么意思,但是這種做法,在自己做的時(shí)候(未架到IIS),搜狗瀏覽器是可以顯示圖片的(僅此一款可以顯示,所以這種做法沒(méi)有意義)。

Image控件是在System.Web.UI.WebControls命名控件中,所以不能像在winform中那樣通過(guò)byte[]直接顯示圖片(個(gè)人也有點(diǎn)不太明白這句話,誰(shuí)如果明白可以解釋一下)。找到的這種方法,是采取將圖片讀取,然后將讀進(jìn)來(lái)的二進(jìn)制流寫(xiě)到一個(gè)頁(yè)面上,然后將Image的URL設(shè)置為此頁(yè)面。下面是我的Demo實(shí)現(xiàn)代碼。
前臺(tái)代碼:

復(fù)制代碼 代碼如下:


<head runat="server">
<title></title>
<script src="jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript">
function ShowP(obj) {
$("#Image1")[0].src = "ShowPic.aspx?URL=" + obj.id;
}
</script>
</head>
<body>
<form runat="server">
<div>
<input type="button" value="button" />
<asp:Image runat="server" />
</div>
</form>
</body>
</html>


ShowPic.aspx的前臺(tái)代碼為空,下面是ShowPic.aspx的后臺(tái)代碼:

復(fù)制代碼 代碼如下:


public partial class ShowPic : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
#region "根據(jù)照片路徑,將照片轉(zhuǎn)為二進(jìn)制數(shù)組"
string strUrl = Request.QueryString["URL"];
// 以二進(jìn)制方式讀文件
FileStream aFile = new FileStream(strUrl, FileMode.OpenOrCreate, FileAccess.ReadWrite);
// 創(chuàng)建一個(gè)二進(jìn)制數(shù)據(jù)流讀入器,和打開(kāi)的文件關(guān)聯(lián)
BinaryReader brMyfile = new BinaryReader(aFile);
// 把文件指針重新定位到文件的開(kāi)始
brMyfile.BaseStream.Seek(0, SeekOrigin.Begin);
//獲取照片的字節(jié)數(shù)組
byte[] photo = brMyfile.ReadBytes(Convert.ToInt32(aFile.Length.ToString()));
// 關(guān)閉以上new的各個(gè)對(duì)象
brMyfile.Close();
#endregion
Response.BinaryWrite(photo);
}
}


在上面我把照片的路徑賦給了按鈕ID,然后將路徑作為參數(shù)來(lái)調(diào)用ShowPic.aspx,在ShowPic的后臺(tái)代碼中,將照片以二維數(shù)組的形式寫(xiě)到頁(yè)面上,如果你直接打開(kāi)這個(gè)頁(yè)面,會(huì)顯示亂碼。

然后將Image的Url設(shè)置為這個(gè)頁(yè)面,此時(shí)會(huì)顯示圖片。我通過(guò)按鈕ID實(shí)現(xiàn)了一下動(dòng)態(tài)加載圖片,到具體應(yīng)用,還有一點(diǎn)點(diǎn)傳參的小問(wèn)題,關(guān)于JavaScript傳參,這個(gè)還是需要大家自己做個(gè)例子,通過(guò)javascript調(diào)試工具,來(lái)了解dom結(jié)構(gòu),然后進(jìn)行操作。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安顺市| 涿鹿县| 金平| 武山县| 北海市| 蕲春县| 阿坝县| 海兴县| 民权县| 桐梓县| 桐乡市| 兴义市| 柳林县| 青川县| 阳春市| 阿坝县| 四平市| 朝阳区| 武胜县| 三门县| 米林县| 江门市| 嘉荫县| 中江县| 游戏| 沈阳市| 方正县| 开平市| 永善县| 会同县| 祁阳县| 新郑市| 台安县| 广宁县| 微山县| 屏边| 冷水江市| 河北区| 正阳县| 双峰县| 武夷山市|