这种方法可以将重要文件隐藏在非IIS或web服务目录,稍加修改,就可以给下载加上权限。
以下是支持断点续传的 asp文件全部代码
(注意:支持Flashget 不支持 Netannts 。 Netannts 太烂了,出点问题就不能下载,还是Flashget强大,一般都可以下载)
建议 太大的文件不要用ASP下载,因为下载前会将文件全部装入内存。
可以通过 download.asp?file=C:\MYsoft\myfile.exe 来下载 存在于服务器的任何文件
1
2call downloadfile(trim(request("file")))
3
4function downloadFile(filepath)
5on error resume next
6
7Response.buffer=false
8
9Set S=CreateObject("Adodb.Stream")
10S.Mode=3
11S.Type=1
12S.Open
13S.LoadFromFile(filepath)
14
15'开始下载
16if Err.Number>0 then
17Response.Status="404"
18else
19Range=Mid(Request.ServerVariables("HTTP_RANGE"),7)
20
21Response.AddHeader "Content-Disposition:","attachment; filename=" & s.name
22
23if Range="" then
24Response.AddHeader "Content-Length", s.size
25else
26Response.AddHeader "Content-Length", (s.size-Clng(Split(Range,"-")(0)))
27End if
28
29Response.ContentType="application/download_only"
30Response.CharSet = "UTF-8"
31
32if Range="" then
33Response.BinaryWrite(S.Read)
34else
35S.position=Clng(Split(Range,"-")(0))
36Response.BinaryWrite(S.Read)
37End if
38
39end if
40Response.End
41
42end function
其中 download_only 是为了写一个浏览器无法辨别的ContentType,这样 如果要下载 .htm文件时 也会出现 “下载文件”的提示,不至于 直接在浏览器里显示,呵呵……