网络编程
位置:首页>> 网络编程>> Asp编程>> 利用ADODB.Stream使用浏览器下载服务器文件

利用ADODB.Stream使用浏览器下载服务器文件

  发布时间:2008-10-09 12:42:00 

标签:Adode,stream,下载,asp

本文介绍使用ADODB.Stream组件来下载服务器文件,例如:download.asp?file=相对路径的文件。

就可以把这个文件下载下来,而不是直接在浏览器中打开!


<% 
 call downloadFile(replace(replace(Request("file"),"\",""),"/","")) 
 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 exist<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>" & err.Description & "<p>") 
 Response.End 
 end if 
 
 ' send the headers to the users browser 
 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 
 
%>


0
投稿

猜你喜欢

  • detectres.asp<HTML><head><TITLE>asp教程之全能屏幕分辨率侦测</
  • 1、IIS为一个死循的执行过程设定执行时间(缺省为90秒)超时事件:<%response.buffer=true%><BO
  • 有效地加载数据有时我们需大量地把数据加载到数据表,采用批量加载的方式比一个一个记录加载效率高,因为MySQL不用每加载一条记录就刷新一次索引
  • 在中文网页中最常见的网页编码就是GB2312和UTF-8了,本文介绍了ASP实现GB2312编码转换为UTF-8编码的函数:Function
  • 目前已经有很多生成html的新闻系统,但是都是用的模板,本函数实现把asp页面产生的html代码保存成为一个html文件,这样就没有必要改动
  • 几天前,想把上个月校园招聘的餐旅费报销一下。结果在公司内网的报销系统折腾了三个半小时才搞定。看看自己报销的金额:802块。觉得挺无奈,花了三
  • 在风起云涌的互联网浪潮中,产品迭代的速度越来越快。随着用户需求的激增,也不断带来了对设计师能力要求的提高。初入交互设计领域几年来,明显发现可
  • 上期回顾:亚马逊购物用户体验分析 (二)方便的导航元素任何网上商店的成功,至关重要的一点,就是用户可以简单轻松地使用导航条。基本店铺分类,用
  • 大多的MySQL都是装在Linux上的,而我们的本机上一般都会装MySQL-Front.那如何用MySQL-Front连接远端Linux系统
  • 精妙的"SQL"语句:◆复制表(只复制结构,源表名:a 新表名:b)SQL: select * into b from
  • 1、from子句组装来自不同数据源的数据;  2、where子句基于指定的条件对记录行进行筛选;  3、group&nb
  • 下面这些命令可以在命令行下用isql执行,isql -E -Q "命令",isql.exe
  • 第一类人,用户体验无所不能。第二类人,用户体验无所不包括。第三类人,用户体验只是指导思想。用户研究通常是做创新的工作,也就注定只少数有财力、
  • set oSQLServer =server.createobject("SQLDMO.SQLServer")oSQLS
  • 内容摘要:FCKeditor至今已经到了2.3.1版本了,对于国内的WEB开发者来说,也基本上都已经“闻风知多少”了,很多人将其融放到自己的
  • 本文将展示一个开源JavaScript库,该脚本库给AJAX应用程序带来了书签和后退按钮支持。在学习完这个教程后,开发人员将能够获得对一个A
  • 什么是CSS Sprites?“Sprite”(精灵)这个词在计算机图形学中有它独特的定义,由于游戏、视频等画质越来越高,必须有一种技术可以
  • 以国内最流行ASP为例,我不知道有多少人会在写代码时想到“容错”这个概念,实际上当我遇到这种事时,也是不了了之。为什么呢,想想最初的意思是认
  • rhel5下默认安装mysql5.0后,中文显示为乱码原因:mysql默认字符集是latin,所以中文不能正常显示解决方法:修改配置文件,
  • 在使用SQL Server 的过程,中由于经常需要从多个不同地点将数据集中起来或向多个地点复制数据,所以数据的导出,导入是极为常见的操作.我
手机版 网络编程 asp之家 www.aspxhome.com