关于ASP图象问题的总结

导读:
  如何处理ASP中的图象
  在用ASP编程中,很多时侯要用到图象。对于单纯从数据库中处理一个图象,方法大家讲了很多,也不难,
  可以看下面的代码:
  这里假设你有个数据库名字叫:PUBS,在数据库中有一个叫:PUB_INFO的表,在表中有一个LOGO
  的BLOB列。我们查出PUB_ID=0736的人的相片。
  file: SHOWIMG.ASP
  ***************************************
  <%@ LANGUAGE="VBSCRIPT" %>
  <%

' Clear out the existing HTTP header information

Response.Expires = 0

Response.Buffer = TRUE

Response.Clear

' Change the HTTP header to reflect that an image is being passed.

Response.ContentType = "image/gif"

Set cn = Server.CreateObject("ADODB.Connection")

' The following open line assumes you have set up a System DataSource

' by the name of myDSN.

cn.Open "DSN=myDSN;UID=sa;PWD=;DATABASE=pubs"

Set rs = cn.Execute("SELECT LOGO FROM pub_info WHERE pub_id='0736'")

Response.BinaryWrite rs("LOGO")

Response.End

%>  ' Clear out the existing HTTP header information

  Response.Expires = 0

  Response.Buffer = TRUE

  Response.Clear

  ' Change the HTTP header to reflect that an image is being passed.

  Response.ContentType = "image/gif"

  Set cn = Server.CreateObject("ADODB.Connection")

  ' The following open line assumes you have set up a System DataSource

  ' by the name of myDSN.

  cn.Open "DSN=myDSN;UID=sa;PWD=;DATABASE=pubs"

  Set rs = cn.Execute("SELECT LOGO FROM pub_info WHERE pub_id='0736'")

  Response.BinaryWrite rs("LOGO")

  Response.End

  %>
  *****************************************
  执行这个ASP文件就可以看到你存在数据库中的图象了。
  但如果是同时处理文字和图象就会有些困难了:-(
  比如:一个企业的人员管理,后台数据库可以用SYBASE或SQL SERVER等。(我在这用SQL SERVER)当
  你在企业内部需要用到BROWSE/SERVER方式,即用浏览器查看员工的个人信息时,就即要处理文字信息同时
  还要用到关于图象的技巧。
  问题在于你显示文字信息时HTML的HEAD中的CONTENT=“TEXT/HTML”,而显示图象则必须是
  CONTENT=“IMAGE/GIF”或者是CONTENT=”IMAGE/JPEG“。因此你是无法只用一个ASP文件就把文字信息和
  图象都处理完的,解决的办法是:用一个单独的ASP文件处理图象,然后在处理文字信息的ASP文件中调用
  这个ASP文件。
  在这给大家介绍一个我的解决方法,希望大家一起讨论:
  环境:WINNT4.0 SQL SERVER IIS3.0
  数据库名:RSDA
  表名:RSDA_TABLE
  目的:从RSDA_TABLE中查出ID=00001的人员的信息,包括姓名,年龄和照片
  第一步:创建一个查询表单RSDA.HTM:
  **********************************
  
  
  
  
  

  

请输入编号:
  type="submit" value="提交" name="B1">


  

  
  
  ***********************************
  第二步:建立SEARCH.ASP
  ***********************************
  
  
  
   查询结果
  
  
  <%

session("RSDA_ID")=Request.Form("T1") '这里我用了一个SESSION变量,是为了在处理图象的ASP文件中再次调用

temp_id=session("RSDA_ID")

<  session("RSDA_ID")=Request.Form("T1") '这里我用了一个SESSION变量,是为了在处理图象的ASP文件中再次调用

  temp_id=session("RSDA_ID")

   查询结果:

  <%set conntemp=server.createobject("adodb.connection")

conntemp.open "dsn=RSDA;uid=sa;pwd=SA"

set rstemp=conntemp.execute("select * from RSDA_TABLE where rsda='"&temp_id&"'")

%>  conntemp.open "dsn=RSDA;uid=sa;pwd=SA"

  set rstemp=conntemp.execute("select * from RSDA_TABLE where rsda='"&temp_id&"'")

  %>
  <% 'put headings on the table of field names

nobody="对不起!在我们的数据库里没有您要找的资料!"%>  nobody="对不起!在我们的数据库里没有您要找的资料!"%> '判断是否有这个人
  <%if rstemp.eof then %>
   <%Response.Write(nobody)%>
  <%else%>
  

  

  











  
  

姓 名

  

  <%=rstemp(0)%>
     
  

年 龄

  

  <%=rstemp(0)%>
     
  

  
'JPG.ASP就是我们将要建立的专门处理图象的ASP文件      
  

  rstemp.close
  set rstemp=nothing
  conntemp.close
  set conntemp=nothing
  %>
  
  
  ***********************************
  第三步:建立处理图象的ASP文件。(JPG.ASP)
  ***********************************
  <%

Response.Expires = 0

Response.Buffer = TRUE

Response.Clear



' Open database

Set conntemp = Server.CreateObject("ADODB.Connection")

conntemp.open "dsn=RSDA;uid=sa;pwd=SA"

'change http header

Response.ContentType = "image/jpeg" ' or "IMAGE/GIF"



' Get picture



TEMP_ID=session("RSDA_ID")

Set Rs = conntemp.Execute("SELECT photo from RSDA_table where ID='"&TEMP_ID&"'")

Response.BinaryWrite Rs("photo")

Session.Abandon

Response.End

%>  Response.Expires = 0

  Response.Buffer = TRUE

  Response.Clear

  

  ' Open database

  Set conntemp = Server.CreateObject("ADODB.Connection")

  conntemp.open "dsn=RSDA;uid=sa;pwd=SA"

  'change http header

  Response.ContentType = "image/jpeg" ' or "IMAGE/GIF"

  

  ' Get picture

  

  TEMP_ID=session("RSDA_ID")

  Set Rs = conntemp.Execute("SELECT photo from RSDA_table where ID='"&TEMP_ID&"'")

  Response.BinaryWrite Rs("photo")

  Session.Abandon

  Response.End

  %>
  **********************************
  这里主要就是用到了一个小技巧就是利用了一个SESSION变量来实现两次同条件查询。
  大家如我上述只需少量改动,就可以实现一个页面既有文字又有图象了!
  作者:徐峰
  江西财大网络中心
  xufeng@jxufe.edu.cn
  ***欢迎转载,请保留作者信息****

本文转自
http://study.qqcf.com/web/254/32081.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值