您当前的位置: 首页 > 网站编程 > ASP教程 > ASP单击链接直接下载文件的代码

ASP单击链接直接下载文件的代码

作者:不详 来源:网络 发布时间: 2011-10-05 19:52 点击:
在ie中点开图片或文档的链接里,IE会自动打开它,有时候这种功能并不是我们所需的,虽然我们可以提醒用户用鼠标右键--目标另存为....命令来下载文档或图片,但这样毕竟不太方便,本文描述了利用FSO及Stream方法实现IE直接下载文档.%@language=vbscript codepage=65001% % '

ASP单击链接直接下载文件的代码

  在ie中点开图片或文档的链接里,IE会自动打开它,有时候这种功能并不是我们所需的,虽然我们可以提醒用户用鼠标右键-->"目标另存为...."命令来下载文档或图片,但这样毕竟不太方便,本文描述了利用FSO及Stream方法实现IE直接下载文档.<%@language=vbscript codepage=65001%>
  
  <%
  
  'Filename must be input
  
  if Request("Filename")="" then
  
  response.write"<h1>Error:</h1>Filename is empty!<p>"
  
  else
  
  call downloadFile(replace(replace(Request("Filename"),"",""),"/",""))
  
  Function downloadFile(strFile)
  
  ' make sure you are on the latest MDAC version for this to work
  
  ' get full path of specified file
  
  strFilename=server.MapPath(strFile)
  
  ' clear the buffer
  
  Response.Buffer=True
  
  Response.Clear
  
  ' create stream
  
  Set s=Server.CreateObject("ADODB.Stream")
  
  s.Open
  
  ' Set as binary
  
  s.Type=1
  
  ' load in the file
  
  on error resume next
  
  ' check the file exists
  
  Set fso=Server.CreateObject("Scripting.FileSystemObject")
  
  if not fso.FileExists(strFilename)then
  
  Response.Write("<h1>Error:</h1>"&strFilename&" does not exists!<p>")
  
  Response.End
  
  end if
  
  ' get length of file
  
  Set f=fso.GetFile(strFilename)
  
  intFilelength=f.size
  
  s.LoadFromFile(strFilename)
  
  if err then
  
  Response.Write("<h1>Error:</h1>Unknown Error!<p>")
  
  Response.End
  
  end if
  
  ' send the headers to the users Browse
  
  Response.AddHeader"Content-Disposition","attachment;filename="&f.name
  
  Response.AddHeader"Content-Length",intFilelength
  
  Response.CharSet="UTF-8"
  
  Response.ContentType="application/octet-stream"
  
  ' output the file to the browser
  
  Response.BinaryWrite s.Read
  
  Response.Flush
  
  ' tidy up
  
  s.Close
  
  Set s=Nothing
  
  End Function
  
  end if
  
  %>
  
  <%@language=vbscript codepage=65001%>
  
  <%
  
  'Filename must be input
  
  if Request("Filename")="" then
  
  response.write"<h1>Error:</h1>Filename is empty!<p>"
  
  else
  
  call downloadFile(replace(replace(Request("Filename"),"",""),"/",""))
  
  Function downloadFile(strFile)
  
  ' make sure you are on the latest MDAC version for this to work
  
  ' get full path of specified file
  
  strFilename=server.MapPath(strFile)
  
  ' clear the buffer
  
  Response.Buffer=True
  
  Response.Clear
  
  ' create stream
  
  Set s=Server.CreateObject("ADODB.Stream")
  
  s.Open
  
  ' Set as binary
  
  s.Type=1
  
  ' load in the file
  
  on error resume next
  
  ' check the file exists
  
  Set fso=Server.CreateObject("Scripting.FileSystemObject")
  
  if not fso.FileExists(strFilename)then
  
  Response.Write("<h1>Error:</h1>"&strFilename&" does not exists!<p>")
  
  Response.End
  
  end if
  
  ' get length of file
  
  Set f=fso.GetFile(strFilename)
  
  intFilelength=f.size
  
  s.LoadFromFile(strFilename)
  
  if err then
  
  Response.Write("<h1>Error:</h1>Unknown Error!<p>")
  
  Response.End
  
  end if
  
  ' send the headers to the users Browse
  
  Response.AddHeader"Content-Disposition","attachment;filename="&f.name
  
  Response.AddHeader"Content-Length",intFilelength
  
  Response.CharSet="UTF-8"
  
  Response.ContentType="application/octet-stream"
  
  ' output the file to the browser
  
  Response.BinaryWrite s.Read
  
  Response.Flush
  
  ' tidy up
  
  s.Close
  
  Set s=Nothing
  
  End Function
  
  end if
  
  %>

分享到:
本文"ASP单击链接直接下载文件的代码"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(1)
100%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4