动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ ASP技巧 ]的信息



本月文章推荐
.关于解决商务平台ASP程序的源代码.
.FileSystemObject处理文件.
.如何增强ASP程序性能(1).
.用asp管理sql server数据库.
.怎样在ASP里面创建统计图表.
.当碰到不能使用asp标记<%%>的时候.
.一个用ASP生成html的新方法 .
.remote script文档(转载自微软)(.
.关于图片与文本同存在数据库中的.
.要如何使用 ASP Error 组件?.
.用ASP发送邮件.
.Microsoft SQL Server 7.0安全问.
.直接显示"Monday"等星.
.提高ASP性能的最佳选择(三).
.ASP代码的对象化.
.浅谈无刷新取得远程数据技术.
.ASP程序中使用断开的数据记录集.
.ASP原码加密工具介绍.
.ASP中实现小偷程序的原理和简单.
.ASP向NT域中加一个用户 .

asp中自定义文件下载

发表日期:2006-8-30 |


可以用流下载(耗内存,少用)或直接转到该文件.


<%

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) = "" Then
        OutputErr "错误:先确定要下载的文件,下载失败"
    End If

    '判断扩展名是否合法
    Dim s_FileExt
    s_FileExt = Mid(s_DownFilePath, InstrRev(s_DownFilePath, ".")+1)
    If InStr("," & ALLOW_FILE_EXT & ",", "," & s_FileExt & ",") <= 0 Then
        OutputErr "错误:文件类型(" & s_FileExt & ")不允许被下载,下载失败"
    End If
   
    s_DownFilePath = Replace(s_DownFilePath, "\", "/")

    '为了安全,某些目录禁止下载文件,在这里处理
    '
   
    '检测服务器是否支持fso
    Dim o_Fso
    On Error Resume Next
    Set o_Fso = Server.CreateObject("Scripting.FileSystemObject")
    If Err.Number <> 0 Then
        Err.Clear
        OutputErr "错误:服务器不支持fso组件,下载失败"
    End If

    '取得文件名,文件大小
    Dim s_FileMapPath
    Dim o_File, s_FileName, n_FileLength
    s_FileMapPath = Server.MapPath(s_DownFilePath)
    If (o_Fso.FileExists(s_FileMapPath)) = True Then
        Set o_File = o_Fso.GetFile(s_FileMapPath)
        s_FileName = o_File.Name
        n_FileLength = o_File.Size
        o_File.Close
    Else
        OutputErr "错误:文件不存在,下载失败"
    End If
    Set o_Fso = Nothing

    '判断是否下载的文件大小超过限制
    '   
   
    '如果不是用流下载,直接转到该文件
    If USE_STREAM = 0 Then
        Response.Redirect sDownFilePath
        Response.end
    End If

    '检测服务器是否支持Adodb.Stream
    On Error Resume Next
    Set o_Stream = Server.CreateObject("Adodb.Stream")
    If Err.Number <> 0 Then
        Err.Clear
        OutputErr "错误:服务器不支持Adodb.Stream组件,下载失败"
    End If

    o_Stream.Tyep = 1
    o_Stream.Open
    o_Stream.LoadFromFile s_FileMapPath

    Response.Buffer = True
    Response.Clear
    Response.AddHeader "Content-Disposition", "attachment; filename=" & s_FileName
    Response.AddHeader "Content-Length", n_FileLength
    Response.CharSet = "UTF-8"
    Response.ContentType = "application/octet-stream"
    Response.BinaryWrite o_Stream.Read
    Response.Flush

    o_Stream.Close
    Set o_Stream = Nothing

End Function

Sub OutputErr(s_ErrMsg)
    Response.Write "<font color=red>" & s_ErrMsg & "</font>"
    Response.End
End Sub

%>

http://www.cnblogs.com/jiny-z/archive/2006/08/29/489102.html

上一篇:用asp判断某IP是否属于某网段的另类算法 人气:9910
下一篇:用ASP+DLL实现WEB方式修改服务器时间 人气:7492
浏览全部asp的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-25 WikyBlog v1.7.0.1 多国语言版
2008-7-25 乐彼网上开店系统(56770 Eshop)
2008-7-25 赛特网站管理系统sitecms v3.6.0
2008-7-25 Modoer多功能点评系统 v1.0.1 Bu
2008-7-25 Shangducms Teamsuit! v1.1.0 开
2008-7-25 幻影动漫网视频系统(Ppdong) v1.
2008-7-25 acteecompany企业网站建设系统 v
2008-7-25 恒浪整合管理系统 ims v4.1 ACCE
2008-7-25 艺术图库系统 v1.0 beta
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号