佳木斯湛栽影视文化发展公司

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

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

熱門標(biāo)簽:Linux服務(wù)器 服務(wù)器配置 科大訊飛語音識(shí)別系統(tǒng) 銀行業(yè)務(wù) 電子圍欄 團(tuán)購網(wǎng)站 阿里云 Mysql連接數(shù)設(shè)置
我要實(shí)現(xiàn)這樣一個(gè)需求:數(shù)據(jù)庫中存儲(chǔ)的是照片所在的絕對(duì)路徑(可以不在系統(tǒng)所在路徑下),Image控件動(dòng)態(tài)加載路徑下的圖片。

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

Image控件是在System.Web.UI.WebControls命名控件中,所以不能像在winform中那樣通過byte[]直接顯示圖片(個(gè)人也有點(diǎn)不太明白這句話,誰如果明白可以解釋一下)。找到的這種方法,是采取將圖片讀取,然后將讀進(jìn)來的二進(jìn)制流寫到一個(gè)頁面上,然后將Image的URL設(shè)置為此頁面。下面是我的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 id="form1" runat="server">
div>
input id="E:\\1.jpg" type="button" value="button" onclick="ShowP(this);" />
asp:Image ID="Image1" 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ù)流讀入器,和打開的文件關(guān)聯(lián)
BinaryReader brMyfile = new BinaryReader(aFile);
// 把文件指針重新定位到文件的開始
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ù)來調(diào)用ShowPic.aspx,在ShowPic的后臺(tái)代碼中,將照片以二維數(shù)組的形式寫到頁面上,如果你直接打開這個(gè)頁面,會(huì)顯示亂碼。

然后將Image的Url設(shè)置為這個(gè)頁面,此時(shí)會(huì)顯示圖片。我通過按鈕ID實(shí)現(xiàn)了一下動(dòng)態(tài)加載圖片,到具體應(yīng)用,還有一點(diǎn)點(diǎn)傳參的小問題,關(guān)于JavaScript傳參,這個(gè)還是需要大家自己做個(gè)例子,通過javascript調(diào)試工具,來了解dom結(jié)構(gòu),然后進(jìn)行操作。

標(biāo)簽:棗莊 萍鄉(xiāng) 衡水 大理 蚌埠 衢州 江蘇 廣元

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Image顯示服務(wù)器上任意絕對(duì)路徑下的圖片(采用二進(jìn)制流實(shí)現(xiàn))》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    印江| 莱州市| 上杭县| 宿州市| 独山县| 阳朔县| 勃利县| 喀什市| 盐津县| 万年县| 刚察县| 郧西县| 呼伦贝尔市| 巴林左旗| 枣阳市| 淳化县| 曲阜市| 吉木乃县| 文昌市| 称多县| 和静县| 木兰县| 淳安县| 阳谷县| 南通市| 乡宁县| 东城区| 库车县| 大渡口区| 若羌县| 正安县| 巢湖市| 精河县| 陕西省| 红安县| 新源县| 五莲县| 皮山县| 阜宁县| 咸丰县| 胶南市|