asp 下载函数

N久没搞ASP啦,今天一个网友问到这个问题.就在网上找了下.

也不知道这个有没有错误.

下载的基本思路是这个样子的.

代码如下:

<%Const USE_STREAM = 0 '0.不用流(Adodb.Stream)下载 1.用流下载Const ALLOW_FILE_EXT = "rar,zip,chm,doc,xls,swf,mp3,gif,jpg,jpeg,png,bmp" '允许下载的文件的扩展名,防止源代码被下载Dim sDownFilePath '下载文件路径sDownFilePath = Trim(Request("FilePath"))'或者根据传过来的文件ID从数据库中获取文件路径'如果 sDownFilePath 为绝对路径,一定要将 sDownFilePath 转换为相对 本文件的相对路径'sDownFilePath = "focus.swf"Call DownloadFile(sDownFilePath)Function DownloadFile(s_DownFilePath)'判断有没传递文件名If IsNull(s_DownFilePath) = True Or Trim(s_DownFilePath) = "" ThenOutputErr "错误:先确定要下载的文件,下载失败"End If'判断扩展名是否合法Dim s_FileExts_FileExt = Mid(s_DownFilePath, InstrRev(s_DownFilePath, ".")+1)If InStr("," & ALLOW_FILE_EXT & ",", "," & s_FileExt & ",") <= 0 ThenOutputErr "错误:文件类型(" & s_FileExt & ")不允许被下载,下载失败"End Ifs_DownFilePath = Replace(s_DownFilePath, "/", "/")'为了安全,某些目录禁止下载文件,在这里处理''检测服务器是否支持fsoDim o_FsoOn Error Resume NextSet o_Fso = Server.CreateObject("Scripting.FileSystemObject")If Err.Number <> 0 ThenErr.ClearOutputErr "错误:服务器不支持fso组件,下载失败"End If'取得文件名,文件大小Dim s_FileMapPathDim o_File, s_FileName, n_FileLengths_FileMapPath = Server.MapPath(s_DownFilePath)If (o_Fso.FileExists(s_FileMapPath)) = True ThenSet o_File = o_Fso.GetFile(s_FileMapPath)s_FileName = o_File.Namen_FileLength = o_File.Sizeo_File.CloseElseOutputErr "错误:文件不存在,下载失败"End IfSet o_Fso = Nothing'判断是否下载的文件大小超过限制'    '如果不是用流下载,直接转到该文件If USE_STREAM = 0 ThenResponse.Redirect sDownFilePathResponse.endEnd If'检测服务器是否支持Adodb.StreamOn Error Resume NextSet o_Stream = Server.CreateObject("Adodb.Stream")If Err.Number <> 0 ThenErr.ClearOutputErr "错误:服务器不支持Adodb.Stream组件,下载失败"End Ifo_Stream.Tyep = 1o_Stream.Openo_Stream.LoadFromFile s_FileMapPath Response.Buffer = TrueResponse.ClearResponse.AddHeader "Content-Disposition", "attachment; filename=" & s_FileNameResponse.AddHeader "Content-Length", n_FileLength Response.CharSet = "UTF-8" Response.ContentType = "application/octet-stream" Response.BinaryWrite o_Stream.ReadResponse.Flusho_Stream.CloseSet o_Stream = NothingEnd FunctionSub OutputErr(s_ErrMsg)Response.Write "<font color=red>" & s_ErrMsg & "</font>" Response.EndEnd Sub%>

转载于:https://www.cnblogs.com/fengju/archive/2008/07/10/6174047.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何实现按键的短按、长按检测?

在电子产品中经常用到按键&#xff0c;尤其是经常需要MCU判断短按和长按这两种动作&#xff0c;本篇我们来专门聊下这个话题。只谈理论太无聊&#xff0c;我们还是结合着实际应用来说明。之前写过一篇关于《CH573第一篇&#xff1a;实现自拍杆蓝牙遥控器1》的文章&#xff0c;例…

ECC内存简介

ECC内存&#xff0c;即应用了能够实现错误检查和纠正技术&#xff08;ECC&#xff09;的内存条。一般多应用在服务器及图形工作站上&#xff0c;这将使整个电脑系统在工作时更趋于安全稳定。ECC是“Error Checking and Correcting”的简写&#xff0c;中文名称是“错误检查和纠…

HTTP与HTTPS的安全性讨论

转载文章&#xff1a;http://blog.csdn.net/xifeijian/article/details/54667989 1、http为什么不安全&#xff1f; http协议属于明文传输协议&#xff0c;交互过程以及数据传输都没有进行加密&#xff0c;通信双方也没有进行任何认证&#xff0c;通信过程非常容易遭遇劫持、…

使用NVM管理Node - Windows

安装 NVM NVM 下载&#xff1a;https://github.com/coreybutler/nvm-windows 安装 Node 注意&#xff1a;如果没有FQ默认源可能安装npm失败&#xff0c;请参考下一节“安装 NPM”修改镜像源地址。 查看可用版本&#xff1a; nvm ls available 安装Node&#xff1a; nvm install…

博士也会毕业吗?

怪我读书少&#xff0c;一直以来我都认为博士是一种很神奇的物种&#xff0c;他们能学会很多我们学不会的东西&#xff0c;那些奇奇怪怪的数学题&#xff0c;还有那种要背上几天的思想政治课文&#xff0c;以及要听懂那种像鸟儿一样呼唤的讲课&#xff0c;所以&#xff0c;我一…

3C趋势价值对云计算发展的驱动作用

日前&#xff0c;AMD总裁邓元鋆在参加云博会时&#xff0c;向来访的媒体透露了AMD在云计算方面的相关策略及计划&#xff1b;邓元鋆表示&#xff0c;未来AMD将以用户最为关心的Consumerization&#xff08;消费导向&#xff09;、Cloud&#xff08;云计算&#xff09;、Converg…

工作笔记

数据类型向下转换&#xff0c;精度丢失&#xff0c;可能会出现错误结果&#xff1a; public class SimpleFormat {public static void main(String[] args) {int a1111111;short b(short)a;System.out.println(b);//输出&#xff1a;-3001 } } 工具类DateFormatUitls转载于:htt…

国外出差见闻之印度

前段时间到印度的马德拉斯市出差了3个月(4月到6月)&#xff0c;今天终于有时间将自己的出差心得和见闻记录下来&#xff0c;可能以后就会忘记。下午16:00时在深圳坐车到香港机场&#xff0c;上车没多久会让填一个入境香港的单子&#xff0c;然后是过海关&#xff0c;过海关时会…

雷军的演讲以及产品发布

8月11号是小米的发布会&#xff0c;还有雷军的年度演讲。因为工作冲突我没看直播&#xff0c;晚上回来看了公众号文章和知乎上的内容讨论&#xff0c;也看了发布的新产品。雷军那个年代能够做上程序员一定是非常牛逼的人&#xff0c;而雷军是这些牛逼人的公司总经理&#xff0c…

候,一片天空

考完试了,也放假了.想知道自己能做什么更想知道自己要做什么曾经多么想好好努力好好看书现在才发现是该好好努力好好看书时间过得太快了,快得让人害怕只是睡觉,只是跑来跑去只是不明白什么时候才能真正自己靠自己只是不知道怎么样才能过得充实而有意义只是不晓得如何才能守住现…

轻松理解UML用例图时序图类图的教程

摘自https://zhuanlan.zhihu.com/p/29874146 写在前面 当你老大扔给你这样的图&#xff0c;或者你需要完成某些功能而去看文档的时候发现以下类似这样的图会不会不&#xff08;一&#xff09;知&#xff08;脸&#xff09;所&#xff08;懵&#xff09;措&#xff08;逼&#x…

[Winodows Phone 7控件详解]控件拾遗

1.Panorama控件和Pivot控件前面讲过&#xff0c;没有必要再重复一遍了。参见我的博文&#xff1a;http://www.cnblogs.com/DebugLZQ/archive/2012/03/19/2406284.html 2.DeepZoom DeepZoom 是silverlight的特色功能之一&#xff0c;也同样被加到了windows phone 7中来。这个功能…

这个工具替代Notepad++,我很满意

用过notepad的人并且还一直坚持使用它的人一定觉得它是一个非常优秀的软件&#xff0c;这个软件用来看日志&#xff0c;看代码和文档非常方便&#xff0c;而且里面还集成了一个HEX分析的工具&#xff0c;当然还有列模式等等。不吹牛啊&#xff0c;很多软件只做到了功能&#xf…

c#实现Stack

1 publicclassNodes //结点类2 {3 publicNodes Next;4 publicobjectValue;5 publicNodes(objectvalue) : this(value, null) { }6 publicNodes(objectvalue, Nodes next)7 {8 Next next;9 Value value;10 }11 }1 publicclassStack2 {3 privateintcount 0;4 privateNodes first …

Kubectl 部署有状态应用(下)

接上文 《Kubectl 部署有状态应用&#xff08;上&#xff09;》创建完StatefulSet后&#xff0c;本文继续介绍StatefulSet 扩展、更新、删除等内容。 StatefulSet 中的 Pod 验证序数索引和稳定的网络身份 StatefulSet 中的 Pod 具有唯一的序数索引和稳定的网络身份。 查看 …

收集的50家国产MCU信息

全球MCU市场多为欧美、日本和台湾地区企业占据&#xff0c;仅欧企恩智浦、美企Microchip、美企ST、欧企英飞凌就占据超80%的份额&#xff0c;TI、Nuvoton、罗姆、三星、东芝五家企业占据11.4%&#xff0c;而中国大陆企业所占份额6.5%不到。这意味着&#xff0c;留给中国本土供应…

解决文件路径的问题的总结

构建路径:    os.path 模块用来管理文件路径问题&#xff0c;它中包含了很多用以构建路径的函数&#xff0c;其中最常用的便是 join&#xff0c;abspath 以及 expanduser 函数&#xff1a; join&#xff1a;拼接路径&#xff08;不同的操作系统使用不同的分隔符拼接&#x…

进程间的数据共享

////TITLE:// 进程间的数据共享//AUTHOR:// norains//DATE:// Friday 20-June-2008//Environment:// WINCE5.0 VS2005 MIPS SDK// 同一进程的不同线程间共享数据不是难事&#xff0c;并且方式也很多&#xff0c;不胜枚举&#xff1b;而不同的进程间需要共享数据…

Silverlight实用窍门系列:63.Silverlight中的Command,自定义简单Command

在Silverlight中的MVVM模式下将前台页面和ViewModel界面交互分离开是通过本节所要讲述的Command实现的。我们自定义一个Command需要继承于ICommand接口并且实现这个接口。它有CanExecute()、Execute()方法和CanExecuteChanged事件组成。 CanExecute()&#xff1a;判断是否继续执…