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

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

如何處理圖形與文字的顯示問題

[摘要]如何從ACCESS數據庫中讀取images 1。ACCESS和FoxPro數據庫中的圖形格式 當瀏覽器遇到一個<IMG>標志時,它會根據你設定的src屬性來下載文件。 這可能是一個圖形文件或則是一個ASP頁面。 如果是一個返回gif二進制的ASP頁面 瀏覽器需要知道返回的是什么格式的圖...

如何從ACCESS數據庫中讀取images
1。ACCESS和FoxPro數據庫中的圖形格式
當瀏覽器遇到一個<IMG>標志時,它會根據你設定的src屬性來下載文件。
這可能是一個圖形文件或則是一個ASP頁面。
如果是一個返回gif二進制的ASP頁面
瀏覽器需要知道返回的是什么格式的圖形文件
因為這個原因,就需要指定content type,為image/gif,image/bmp
image/jpeg或則其他什么的。
Response.contentType = "image/gif"
但這會導致另外一個問題,那就是我們只能夠顯示gif格式的圖象,
或則說保存在數據庫中的東西只能夠是gif格式的了。
但是一些數據庫是使用gif格式保存的,但是另外一些則是使用
jpeg格式保存的,甚至其他是采用OLE方式來保存圖形的。
所以我們必須根據圖形的格式來設置response的content type.

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

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

在ACCESS中使用了兩個關鍵的技術來保存圖形
1。使用了bmp格式
2。78個字節的文件頭

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

現在舉一個例子:
如果你要得到一個職工的信息,這段信息包括一個介紹和他的圖象。
并且要同時顯示文字和圖形。
代碼如下:(其中的theImg是一個代理頁面)
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
%>

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

最后再說一點,如何顯示多幅圖象呢?
也就是說如果數據庫中有多個字段都保存了圖形,怎么辦?
其實解決辦法很簡單,只要給SetImageForDisplay多加一個參數
就是用來保存圖形的一個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")%>">

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


主站蜘蛛池模板: 中文字幕亚洲一区二区v@在线 | 日韩福利视频精品专区 | 亚洲第一区精品观看 | 日本一区二区三区免费观看 | 三级黄色片免费 | 五月开心六月伊人色婷婷 | 软萌小仙自慰喷白浆 | 亚洲精品午夜久久aaa级久久久 | 日韩一级影院 | 日本不卡在线一区二区三区视频 | 七月丁香八月婷婷综合激情 | 四虎影院色 | 色爱区综合激情五月综合激情 | 综合五月天婷婷丁香 | 中文字幕乱码一二三四区 | 欧美一级久久久久久久大片 | 亚洲欧美日韩成人网 | 欧美一区在线播放 | 日韩视频观看 | 亚洲欧美综合久久 | 最近最新中文字幕1页 | 亚洲国产最新在线一区二区 | 日日夜夜综合网 | 啪啪国产 | 影院亚洲 | 亚洲大片在线观看 | 任我爽在线视频精品凹凸精品分类 | 欧美一区二区三区成人看不卡 | 青青视频免费 | 欧美性xxxxxx爱 | 日韩专区一区 | 亚洲你我色 | 日本无吗免费一二区 | 欧美性xxxxxx性 | 三级www| 日韩久操| 日本一本二本在线 | 青青青视频免费观看 | 午夜欧美福利视频 | 最新国产福利片在线观看 | 五月天婷婷伊人 |