六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

如何從ACCESS數(shù)據(jù)庫中讀取圖形(續(xù))

[摘要]注意的是你也可以從一個(gè)文件中新建一個(gè)位圖對象,但使用這樣的方式保存在數(shù)據(jù)庫中的圖形格式是瀏覽器不能夠識別的。當(dāng)你往數(shù)據(jù)庫中保存圖象時(shí),你應(yīng)該知道你需要使用什么格式來保存你可以把文件中的每一個(gè)字節(jié)保存下來,或則通過ACCESS/Foxpro的把圖形保存為一個(gè)OLE格式。你使用什么格式保存圖象決定了你...
注意的是你也可以從一個(gè)文件中新建一個(gè)位圖對象,但使用這樣
的方式保存在數(shù)據(jù)庫中的圖形格式是瀏覽器不能夠識別的。
當(dāng)你往數(shù)據(jù)庫中保存圖象時(shí),你應(yīng)該知道你需要使用什么格式來保存
你可以把文件中的每一個(gè)字節(jié)保存下來,或則通過ACCESS/Foxpro的把圖形保存
為一個(gè)OLE格式。
你使用什么格式保存圖象決定了你在ASP中用什么格式來讀出圖形來。
具體來說,如果你在ACCESS/FoxPro中將圖形保存為bmp,gif,jpeg(
這個(gè)必須要使用到ACCESS/FoxPro的OLE對象,即使用ACCESS的插入對象
對話框來完成),這是當(dāng)你使用
image/bmp時(shí)瀏覽器是不能夠解釋的。

現(xiàn)在假設(shè)在數(shù)據(jù)庫中保存的是你所想要的圖形格式
(GIF, JPEG, BMP, TIFF, 等等等等)現(xiàn)在來看看要怎么把它們從
數(shù)據(jù)庫中讀出來。

在ACCESS中使用了兩個(gè)關(guān)鍵的技術(shù)來保存圖形
1。使用了bmp格式
2。78個(gè)字節(jié)的文件頭

<%
response.Expires = 0
response.Buffer = True
response.Clear
response.contentType = "image/bmp"
%>
接著你要干的就是去掉那78個(gè)字節(jié)的OLE對象的文件頭。
<%
Const OLEHEADERSIZE = 78
nFieldSize = rs("photo").ActualSize
oleHeader = rs("photo").GetChunk(OLEHEADERSIZE)
imageBytes = rs("photo").GetChunk(nFieldSize - OLEHEADERSIZE)
Response.BinaryWrite imageBytes
%>

現(xiàn)在舉一個(gè)例子:
如果你要得到一個(gè)職工的信息,這段信息包括一個(gè)介紹和他的圖象。
并且要同時(shí)顯示文字和圖形。
代碼如下:(其中的theImg是一個(gè)代理頁面)
theImg.asp
<%
response.Expires = 0
response.Buffer = True
response.Clear
response.contentType = Session("ImageType")
response.BinaryWrite Session("ImageBytes")
Session("ImageType") = ""
Session("ImageBytes") = ""
response.End
%>


Function SetImageForDisplay(field, contentType)
OLEHEADERSIZE = 78
contentType = LCase(contentType)
select case contentType
case "gif", "jpeg", "bmp"
contentType = "image/" & contentType
bytes = field.value
case "ole"
contentType = "image/bmp"
nFieldSize = field.ActualSize
oleHeader = field.GetChunk(OLEHEADERSIZE)
bytes = field.GetChunk(nFieldSize - OLEHEADERSIZE)
end select
Session("imageBytes") = bytes
Session("imageType") = contentType
End Function
'注意的是,程序中只使用了4中格式:gif, jpeg, bmp , ole .

<%
sql = "select * from Employees"
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.CursorLocation = 3
oRS.Open sql, "DSN=NW"
SetImageForDisplay oRS("photo"), "ole"
Set oRS.ActiveConnection = Nothing
%>

要顯示圖象的話,只需要在另外一個(gè)asp中,假設(shè)為getEmpInfo.asp中
<img src="theImg.asp"</img>
但這還有一個(gè)問題,因?yàn)閷γ總(gè)職工的圖形都使用了同一個(gè)"theImg.asp"
文件,應(yīng)該再小小修改一下:
<img src="theImg.asp?temp=<%= Request.Form("empLastName")%>"</img>

最后再說一點(diǎn),如何顯示多幅圖象呢?
也就是說如果數(shù)據(jù)庫中有多個(gè)字段都保存了圖形,怎么辦?
其實(shí)解決辦法很簡單,只要給SetImageForDisplay多加一個(gè)參數(shù)
就是用來保存圖形的一個(gè)session變量。
例如:
SetImageForDisplay oRS1("photo"), "ole", "empPhoto"
SetImageForDisplay oRS2("logo"), "gif", "compLogo"

<img src="theImg2.asp?varName=empPhoto&temp=<%= Request.Form("empLastName")%>">
<img src="theImg2.asp?varName=compLogo&temp=<%= Request.Form("imgCode")%>">

使用這個(gè)方法能夠完成下面的功能:
1。能夠從數(shù)據(jù)庫中取出圖形字段。(你唯一需要知道的是數(shù)據(jù)庫中的圖形是什么格式
bmp?gif?jpeg?ole?)
2.采用session變量 來保存圖形的字節(jié)數(shù)和content type
asp需要這些信息來聯(lián)結(jié)到<IMG>中的屬性
3。只要把theImg放到你想顯示圖形的地方,就能夠顯示圖象了。






主站蜘蛛池模板: 青青草国 | 天天躁夜夜躁狠狠躁2021 | 色综合天天综合网国产成人网 | 亚洲爱婷婷色婷婷五月 | 伊人久久婷婷丁香六月综合基地 | 欧美一级视频免费 | 色碰视频 | 婷婷视频网| 四虎免费影院4hu永久免费 | 日韩精品国产精品 | 日韩中文字幕高清在线专区 | 日韩在线视频二区 | 青青青激情视频在线最新 | 日韩精品福利视频一区二区三区 | 色噜噜狠狠色综合久 | 天天狠狠干 | 四只虎免费永久观看地址 | 最近最新中文字幕在线第一页 | 日韩欧美不卡 | 日韩美香港a一级毛片 | 日本高清一区二区三区不卡免费 | 色婷婷九月 | 深爱五月婷婷 | 亚洲五月综合网色九月色 | 羞羞影院男女午夜爽爽影视 | 欧美在线播放成人a | 视频在线免费高清 | 天天爱天天做天天爽夜夜揉 | 日韩大片免费观看视频播放 | 在线看欧美成人中文字幕视频 | 在线97 | 青娱乐精品在线 | 日本天堂影院 | 亚洲一区二区黄色 | 日韩免费在线观看 | 一级女人18毛片免费 | 日本五级床片免费 | 小屁孩cao大人免费网站 | 一级黄色片免费的 | 人人看人人添人人谢 | 人人爽人人香蕉 |