无码中文字幕免费一区二区三区,亚洲久热无码中文字幕人妖,精品人妻码一区二区三区 http://www.mxio.cn 傳播先進(jìn)設(shè)計(jì)理念 推動(dòng)原創(chuàng)設(shè)計(jì)發(fā)展 Thu, 09 Mar 2006 01:31:00 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.9.1 如何從ACCESS數(shù)據(jù)庫(kù)中讀取圖形 http://www.mxio.cn/4517.html http://www.mxio.cn/4517.html#respond Thu, 09 Mar 2006 01:31:00 +0000

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

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

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

在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對(duì)象的文件頭。
   <%
       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è)代理頁(yè)面)
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”, “jpg”, “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, jpg, 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)閷?duì)每個(gè)職工的圖形都使用了同一個(gè)”theImg.asp”
文件,應(yīng)該再小小修改一下:
   <img src=”theImg.asp?temp=<%= Request.Form(“empLastName”)%>”</img>

最后再說一點(diǎn),如何顯示多幅圖象呢?
也就是說如果數(shù)據(jù)庫(kù)中有多個(gè)字段都保存了圖形,怎么辦?
其實(shí)解決辦法很簡(jiǎn)單,只要給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ù)庫(kù)中取出圖形字段。(你唯一需要知道的是數(shù)據(jù)庫(kù)中的圖形是什么格式
   bmp?gif?jpg?ole?)
2.采用session變量 來保存圖形的字節(jié)數(shù)和content type
  asp需要這些信息來聯(lián)結(jié)到<IMG>中的屬性
3。只要把theImg放到你想顯示圖形的地方,就能夠顯示圖象了。

]]>
http://www.mxio.cn/4517.html/feed 0
主站蜘蛛池模板: 色午夜一av男人的天堂| 国产伦码精品一区二区| 男人添女人囗交做爰视频| 欧美日产国产新一区| 中文字幕av日韩有码| 亚洲综合精品香蕉久久网| 日韩 另类 综合 自拍 亚洲| 国产蜜臀av在线一区二区| 4444亚洲人成无码网在线观看| 国产爆乳乱码女大生Av| 中文字幕一区二区三区乱码不卡| 伊人久久精品无码av一区| 国内精品一区二区不卡| 狠狠色噜噜狠狠狠狠色综合网 | 国产精品亚洲专区一区二区| 337p日本欧洲亚洲高清鲁鲁 | 好大好硬好爽免费视频| 播五月开心婷婷欧美综合| 手机看片日本在线观看视频| 国产美女无遮挡裸色视频| 999成人精品视频在线| 欧美午夜成人片在线观看| 成人亚洲网站www在线观看| 久热这里只有精品99国产6| 天天躁夜夜躁狠狠喷水| 久久婷婷五月综合97色直播| 国产亚洲a∨片在线观看| 久久婷婷大香萑太香蕉av人| 亚洲va精品中文字幕| 97超碰国产精品无码| 又爽又黄又无遮挡的视频| 日本少妇xxx做受| 女人高潮喷水毛片免费| 亚洲一区二区三区在线观看精品中文 | 极品少妇xxxx精品少妇偷拍| 新婚人妻不戴套国产精品| 久久国产精品波多野结衣| 欧美xxxxx高潮喷水麻豆| 麻豆视传媒精品av在线| 国产果冻豆传媒麻婆精东 | 国产成人精品亚洲日本专区61 |