有难度:在vb中怎么改写这个一行代码?

好记忆不如烂笔头abc 2008-03-22 03:07:50
文件test.asp
如果这么写,就可以显示出图片:
<OBJECT RUNAT=server PROGID=ADODB.Stream id=st> </OBJECT>
<% Response.ContentType = "image/gif"
Response.Buffer = true
st.Open
st.Type = 1
st.LoadFromFile( Server.MapPath("test.gif") )
Response.BinaryWrite st.Read
st.Close
Response.Flush
%>
但是如果写成下面的格式就不能显示图片,而是显示文本"<OBJECT RUNAT=server PROGID=ADODB.Stream id=st> </OBJECT>"

<%
response.write "<OBJECT RUNAT=server PROGID=ADODB.Stream id=st> </OBJECT>"
Response.ContentType = "image/gif"
Response.Buffer = true
st.Open
st.Type = 1
st.LoadFromFile( Server.MapPath("test.gif") )
Response.BinaryWrite st.Read
st.Close
Response.Flush
%>

在vb中应该写成下面的形式的,但是变成不起作用了。如何解决这个问题呢?
...全文
96 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
知道原因了,感谢各位!

原因是:在VB中,必须要将下面的代码放在最前面:
Set st = CreateObject("ADODB.Stream")
Response.ContentType = "image/gif"
Response.Buffer = true
st.Open
st.Type = 1
st.LoadFromFile( Server.MapPath("test.gif") )
Response.BinaryWrite st.Read
st.Close

剩下的操作数据库的代码放在后面。
这样才能显示出图片来,而如果是asp页面,就和顺序没关系。折腾了一个下午才试出来。
再次感谢大家都关注!

结贴了。
苍白之月 2008-03-22
  • 打赏
  • 举报
回复
<OBJECT RUNAT=server PROGID=ADODB.Stream id=st> </OBJECT>

你非要这么声名ADODB.Stream 对象 估计无法编译DLL
终于明白你为什么要这么写了 呵呵
response.write " <OBJECT RUNAT=server PROGID=ADODB.Stream id=st> </OBJECT>"


<%
Set st = CreateObject("ADODB.Stream")
Response.ContentType = "image/gif"
Response.Buffer = true
st.Open
st.Type = 1
st.LoadFromFile( Server.MapPath("test.gif") )
Response.BinaryWrite st.Read
st.Close
Response.Flush
%> 不是挺好的吗
  • 打赏
  • 举报
回复
to myvicy 和hookee ,在vb中编译后成dll注册后,asp调用这个dll,依然显示不出图片来。
如果单纯用asp就可以显示图片。
  • 打赏
  • 举报
回复
但是在vb中编译后,还是显示不出图片,
单纯asp没有问题。
苍白之月 2008-03-22
  • 打赏
  • 举报
回复
<OBJECT RUNAT=server PROGID=ADODB.Stream id=st> </OBJECT>
可以简单理解为等同
Set st = CreateObject("ADODB.Stream")

都是.net惹的祸

你用response.write "<OBJECT RUNAT=server PROGID=ADODB.Stream id=st></OBJECT>"
就是把文本发给客户端 客户端不会不会给你解释这句话
tantaiyizu 2008-03-22
  • 打赏
  • 举报
回复
为什么要加runat="server" ?
hookee 2008-03-22
  • 打赏
  • 举报
回复
注意 RUNAT=server 该对象是静态服务器对象,在服务器端运行的

<%
Set st = CreateObject("ADODB.Stream")
Response.ContentType = "image/gif"
Response.Buffer = true
st.Open
st.Type = 1
st.LoadFromFile( Server.MapPath("test.gif") )
Response.BinaryWrite st.Read
st.Close
Response.Flush
%>
myvicy 2008-03-22
  • 打赏
  • 举报
回复
<%
set st = Server.createObject("ADODB.Stream")
Response.ContentType = "image/gif"
Response.Buffer = true
st.Open
st.Type = 1
st.LoadFromFile( Server.MapPath("test.gif") )
Response.BinaryWrite st.Read
st.Close
Response.Flush
%>

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧