当前位置: 主页 > 日志 > ASP >

用ASP实现文件的下载-不保留资源的真实路径

用传统的超连接方式提供的文件下载很容易暴露文件的路径,从而使得那些没有经授权的用户也可以下载到这些文件.如何来保护这些文件呢?下面是一个ASP实现的文件下载函数,有了它,你就不用担心会泄露文件的下载路径了...

Function downloadfile(fullpath)
          downloadfile = False
          Dim strfilename, s, fso, f, intfilelength 
          Set fso = server.createobject("scripting.filesystemobject") 
          If not fso.fileexists(fullpath) Then 
             Response.write "<br><font color=red>注意:你所请求的文件不存在!</font>"
             Exit Function
          End If 

          Set f = fso.getfile(fullpath) 
          获取文件大小 
          intfilelength = f.size

          Set s = server.createobject("adodb.stream") 
          s.open 
          s.type = 1 
          s.loadfromfile(fullpath) 

          response.buffer = True 
          response.clear 
          response.addheader "content-type","application/x-msdownload"
          response.addheader "Content-Encoding","GB2312"
          response.addheader "content-disposition","attachment;filename=" & f.name 
          response.addheader "content-length" ,intfilelength 
          response.contenttype = "application/octet-stream" 
          While not s.eos
              response.binarywrite s.read(1024 * 64)
                关键的一句
              response.flush 
          wend
          s.close 
          Set s = Nothing

          downloadfile = True
      End Function

[日志信息]

该日志于 2009-02-25 16:26 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “用ASP实现文件的下载-不保留资源的真实路径” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部