主题:  关于下载的另一个问题

凝霜

职务:普通成员
等级:1
金币:0.0
发贴:154
注册:2002/4/24 14:17:45
#12002/8/2 15:20:04
大家好。请问
现在我有一个rm格式文件,放到网上给别人下载,但不是在线观看。不用zip压缩,有什么办法吗
是要下载的人下载到电脑上就可以用realplayer打开,不用解压的。我现在这么做了,但是打开这个连接的时候,会自动弹出realplayer这个软件,然后又不能在线打开。其实我也不要它在线,有什么办法吗?急!急!急!急!



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#22002/8/2 15:23:13
最好建立一个real服务器,安装RealServer。
页面的编码参见
www.5dmedia.com/bbs/archivecontent.asp?id=338849



凝霜

职务:普通成员
等级:1
金币:0.0
发贴:154
注册:2002/4/24 14:17:45
#32002/8/2 15:25:33
问题是我不需要用在线这个功能呀。只要下载,怎么做啊?



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#42002/8/2 15:29:14
哦,对不起,以为你要做点播呢。那直接做成文件连接就可以了,你说的问题是因为客户端已经安装了realplayer,将rm格式进行了关联。



凝霜

职务:普通成员
等级:1
金币:0.0
发贴:154
注册:2002/4/24 14:17:45
#52002/8/2 15:39:54
是啊,浏览网页的用户是儿童来的。他们不懂怎么关联不关联的。有办法一点击就下载吗?真好,这么巧,碰到你在线啊。我运气真好。



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#62002/8/2 15:51:22
在服务端似乎没有什么好的办法,除非去除客户端的关联。



凝霜

职务:普通成员
等级:1
金币:0.0
发贴:154
注册:2002/4/24 14:17:45
#72002/8/2 16:04:24
哦,谢谢了!



accord

职务:普通成员
等级:1
金币:1.0
发贴:212
注册:2002/7/2 13:47:52
#82002/8/2 17:12:39
asp可以实现。。。



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#92002/8/2 17:29:36
这个问题跟用不用ASP有什么关系吗?



accord

职务:普通成员
等级:1
金币:1.0
发贴:212
注册:2002/7/2 13:47:52
#102002/8/2 17:41:22
偶同学用asp做了下载功能,图片什么的都可以。。。

Set ts=f.openastextstream(1,-1)
     Response.binaryWrite ts.read(f.size/2)

偶不懂asp,所以不知道这个有没有用



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#112002/8/2 18:06:08
是吗?能否详细说明一下实现的方法?



accord

职务:普通成员
等级:1
金币:1.0
发贴:212
注册:2002/7/2 13:47:52
#122002/8/2 18:21:12
放出全部代码,偶看不懂所以不知道有没有用


<%
'Response.Expires=0


fpath = Request("filepath")
fname = Request("filename")
unitenum=request("unitenum")
tblname=request("tblname")
if cstr(tblname)<>"" and cstr(unitenum)<>"" then
conn.execute "update "&tblname&" set downtimes=downtimes+1 where unitenum='"&unitenum&"'"
conn.close
end if

' on error resume next    
Response.Buffer = True
Response.Clear


ext = Lcase(mid(fpath,InstrRev(fpath,".",-1,1)+1))

set fso=CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(server.mappath(fpath)) then
Response.addheader "content-type","application/octet-stream;charset=gb2312;"

Response.addheader "content-disposition","attachment;filename="&trim(fname& "." & ext)
Set f = fso.GetFile(Server.Mappath(fpath))
         
Set ts=f.openastextstream(1,-1)
     Response.binaryWrite ts.read(f.size/2)

Response.End
else
Set s = Server.CreateObject("ADODB.Stream")
s.Open
s.Type = 1

     Set f = fso.GetFile(server.mappath(fpath))
     intFilelength = f.size
s.LoadFromFile(server.mappath(fpath))     
call Response.AddHeader("Content-Disposition","attachment;filename="&trim(fname& "." & ext))
Response.AddHeader "Content-Length", intFilelength
Response.addheader "content-type","application/octet-stream"
Response.CharSet = "UTF-8"

Response.BinaryWrite s.Read
Response.Flush


s.close
set s=nothing
set fso=nothing
set f=nothing
end if


%>



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#132002/8/2 18:26:36
啊,原来是这样,直接在服务器端FSO读取文件,然后定制Response对客户端的发送。

试验一下……



凝霜

职务:普通成员
等级:1
金币:0.0
发贴:154
注册:2002/4/24 14:17:45
#142002/8/5 11:08:09
是把这段代码随便放在网页的什么地方吗?还要不要加其他的东西的?
为什么我这么做了,最后是无法找到这页呢?



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#152002/8/5 11:16:40
呵呵,这是asp的后台脚本,需要IIS等web服务支持