有难度:在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中应该写成下面的形式的,但是变成不起作用了。如何解决这个问题呢?
...全文
55 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
知道原因了,感谢各位!

原因是:在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>"
就是把文本发给客户端 客户端不会不会给你解释这句话
回复
兔子党-连长 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
%>

回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-03-22 03:07
社区公告
暂无公告