频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> asp教程 -> 利用adodb.stream直接下载任何后缀的文件(防盗链)

利用adodb.stream直接下载任何后缀的文件(防盗链)

作者:未知  来源:转载  发布时间:2005-9-15 20:04:12  发布人:acx

减小字体 增大字体

原作:possible_Y,载自时代课堂

浏览器的地址栏里直接输入一个doc或xls或jpg的文件的url路径,那么该文件会直接显示在浏览器里。而在很多时候我们希望能直接弹出下载提示框让用户下载,我们该怎么办呢?这里有两种方法:
1、设置你的服务器的iis,给doc等后缀名做映射
2、在向客户端发送时设置其contenttype

下面详细说明方法2

<%
Response.Buffer = true
Response.Clear

dim url
Dim fso,fl,flsize
dim Dname
Dim objStream,ContentType,flName,isre,url1
'*********************************************调用时传入的下载文件名
Dname=trim(request("n"))
'******************************************************************
If Dname<>"" Then
'******************************下载文件存放的服务端目录
 url=server.MapPath("/")&"\"&Dname
'***************************************************
End If

Set fso=Server.CreateObject("scripting.FileSystemObject")
 Set fl=fso.getfile(url)
 flsize=fl.size
 flName=fl.name
 Set fl=Nothing
 Set fso=Nothing
%>
<%
 Set objStream = Server.CreateObject("ADODB.Stream")
 objStream.Open
 objStream.Type = 1
 objStream.LoadFromFile url


  Select Case lcase(Right(flName, 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 ".txt"
   ContentType = "text/plain"
  Case Else
   ContentType = "application/octet-stream"
  End Select

 

  Response.AddHeader "Content-Disposition", "attachment; filename=" & flName
  Response.AddHeader "Content-Length", flsize

  Response.Charset = "UTF-8"
  Response.ContentType = ContentType

  Response.BinaryWrite objStream.Read
  Response.Flush
  response.Clear()
 objStream.Close
 Set objStream = Nothing

%>

将下面的东西存成download.asp然后你就可以用<a herf="http://www.knowsky.com/download.asp?n=file.doc">download!</a>来下载同一目录下的file.doc了!

但是这里有个问题就是直接将file.doc路径写在url里是不安全的,所以解决方案应该是将file.doc的路径存到数据库里,同过查找数据库后得到路径

在这个程序的最前面如果加上一个判断:

if instr(Request.ServerVariables("HTTP_REFERER"),"http://你的域名")=0 then
  Response.End
end if

就能够很好的防止别人的盗链了


将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
下一篇文章:ASP主件中的安全问题
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 用ASP、VB和XML建立互联..
· 影响网站搜索引擎排名的..
· 优化MICROSOFT ACCESS提..
· Photoshop CS3制作夜景效..
· 三种Web开发主流技术的评..
· 多表单域无组件文件上传..
· Photoshop立体感设计方法..
· Flash组件之旅(1):认识..
· 控制外跳视窗属性
· 调查:2010年美国VoIP电..
· 未公开的Flash MX使用摄..
· 被遗忘的HTML元素
· PHP中实现图片的锐化
· 处理较长文章,添加 ……..
· 一个很方便的 XML 类!!..
· 总结经验技巧文章:C#.N..
相关文章
· ASP教程,ASP实现防盗链的方..
· 用Asp隐藏文件路径,实现防盗..
· 突破防盗链
· jsp防盗链
· 简单的防盗链功能代码(ifra..
· CSS实现简单的图片防盗链代..
· 利用ADODB.Stream使用浏览器..
· 一个利用adsi得到局域网信息..
· ASP下载系统防盗链方法
· 利用Adodb.Stream直接下载文..
· 在ASP中利用ADO显示Excel文..
· 用Asp隐藏文件路径,实现防..
· 用Asp隐藏文件路径实现防盗..
· 利用ADSI对IIS进行编程
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号