模拟下载文件的问题

胖河马 2005-08-11 05:08:24
有这样一段代码,其中s是ADODB.Stream,作用是动态生成文件通过Stream读取到内存中,然后发送回客户端

'a.asp
'...
Response.AddHeader "Content-Disposition", "attachment;filename=" & ToUTF8(filename)
Response.BinaryWrite s.Read()
s.Close
Set s = Nothing

现在的问题是,用户点击a.asp的链接后,弹出新窗口,并出现下载文件对话框,如果点击取消或者打开则弹出的窗口自动关闭,如果点击保存则弹出的窗口不会关闭,我如何让窗口关闭呢???
...全文
141 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
胖河马 2005-08-17
  • 打赏
  • 举报
回复
slayerbb(名字被抢了) 下载我已经实现了,问题是那个窗口不关闭!
创造奇迹9999 2005-08-15
  • 打赏
  • 举报
回复
关注
slayerbb 2005-08-15
  • 打赏
  • 举报
回复
cache.cnspeed.org
CSDN _ FAQ列表 _ ASP _ OFFICE(WORD,EXCEL……)

Q : 直接下栽WORD文件
主要解答者: chinesun 提交人: 511214
感谢: chinesun
审核者: awaysrain 社区对应贴子: 查看
A :

我在网页上有一个连接。连接的内容是*.doc ,我想实现的是在用鼠标(左击)点击时出现另存窗口,而不是直接打开该文件
---------------------------------------------------------------

你写一个DL.asp文件,这个文件源码如下:
********************
dl.asp
********************
<%
Response.Buffer = true
Response.Clear

'获取要下载的文件在服务器上的绝对位置
dlfile=trim(request("dlfile"))
If dlfile<>"" Then
fileurl=server.MapPath(dlfile)
Else
Response.end
End If

'创建Myfso,使用FSO组件
Set Myfso=Server.CreateObject("Scripting.FileSystemObject")
Set f=Myfso.getfile(fileurl) '定义FSO对象f
fsize=f.size '文件大小
fName=f.name '文件名字
Set f=Nothing '释放f
Set Myfso=Nothing '释放MyFso

'使用Adodb.Stream组件
Set MyStream = Server.CreateObject("ADODB.Stream")
MyStream.Open
MyStream.Type = 1
MyStream.LoadFromFile fileurl

'读取文件类型,让系统识别,以存为不同类型的文件。
Select Case lcase(Right(fName, 4))
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case ".xls"
ContentType = "application/vnd.ms-excel"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg"
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".asp"
ContentType = "text/html"
Case ".txt"
ContentType = "text/plain"
Case Else
ContentType = "application/octet-stream"
End Select

'下载
Response.AddHeader "Content-Disposition", "attachment; filename=" & fName
Response.AddHeader "Content-Length", fsize
Response.Charset = "UTF-8"
Response.ContentType = ContentType
Response.BinaryWrite MyStream.Read
Response.Flush

'释放MyStream
MyStream.Close
Set MyStream = Nothing
%>
********************************
然后你在要实现的页面中这样调用:

*****************************************
<a href="dl.asp?dlfile=dl.doc">dl.doc</a>
*****************************************

28,409

社区成员

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

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