图片、word等文档直接下载
这片代码是我从网上找了好就找来的,在这里跟大家分享一下
想必大家在做下载链接时也遇到过这样的问题,当要做图片或word等文档下载时IE会把文档直接打开而不是弹出下载菜单,遇到这个问题时就可以通过下面的代码解决问题
 1 <%
<%
2 Response.Buffer = true
Response.Buffer = true
3 Response.Clear
Response.Clear
4
5 dim url
dim url
6 Dim fso,fl,flsize
Dim fso,fl,flsize
7 dim Dname
dim Dname
8 Dim objStream,ContentType,flName,isre,url1
Dim objStream,ContentType,flName,isre,url1
9 '*********************************************调用时传入的下载文件名
'*********************************************调用时传入的下载文件名
10 Dname=trim(request("n"))
Dname=trim(request("n"))
11 '******************************************************************
'******************************************************************
12 If Dname<>"" Then
If Dname<>"" Then
13 '******************************下载文件存放的服务端目录
'******************************下载文件存放的服务端目录
14 url=server.MapPath("/")&"/"&Dname
url=server.MapPath("/")&"/"&Dname
15 '***************************************************
'***************************************************
16 End If
End If
17
18 Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fso=Server.CreateObject("Scripting.FileSystemObject")
19 Set fl=fso.getfile(url)
Set fl=fso.getfile(url)
20 flsize=fl.size
flsize=fl.size
21 flName=fl.name
flName=fl.name
22 Set fl=Nothing
Set fl=Nothing
23 Set fso=Nothing
Set fso=Nothing
24 %>
%>
25 <%
<%
26 Set objStream = Server.CreateObject("ADODB.Stream")
Set objStream = Server.CreateObject("ADODB.Stream")
27 objStream.Open
objStream.Open
28 objStream.Type = 1
objStream.Type = 1
29 objStream.LoadFromFile url
objStream.LoadFromFile url
30
31
32 Select Case lcase(Right(flName, 4))
Select Case lcase(Right(flName, 4))
33 Case ".asf"
Case ".asf"
34 ContentType = "video/x-ms-asf"
ContentType = "video/x-ms-asf"
35 Case ".avi"
Case ".avi"
36 ContentType = "video/avi"
ContentType = "video/avi"
37 Case ".doc"
Case ".doc"
38 ContentType = "application/msword"
ContentType = "application/msword"
39 Case ".zip"
Case ".zip"
40 ContentType = "application/zip"
ContentType = "application/zip"
41 Case ".xls"
Case ".xls"
42 ContentType = "application/vnd.ms-excel"
ContentType = "application/vnd.ms-excel"
43 Case ".gif"
Case ".gif"
44 ContentType = "image/gif"
ContentType = "image/gif"
45 Case ".jpg", "jpeg"
Case ".jpg", "jpeg"
46 ContentType = "image/jpeg"
ContentType = "image/jpeg"
47 Case ".wav"
Case ".wav"
48 ContentType = "audio/wav"
ContentType = "audio/wav"
49 Case ".mp3"
Case ".mp3"
50 ContentType = "audio/mpeg3"
ContentType = "audio/mpeg3"
51 Case ".mpg", "mpeg"
Case ".mpg", "mpeg"
52 ContentType = "video/mpeg"
ContentType = "video/mpeg"
53 Case ".rtf"
Case ".rtf"
54 ContentType = "application/rtf"
ContentType = "application/rtf"
55 Case ".htm", "html"
Case ".htm", "html"
56 ContentType = "text/html"
ContentType = "text/html"
57 Case ".txt"
Case ".txt"
58 ContentType = "text/plain"
ContentType = "text/plain"
59 Case Else
Case Else
60 ContentType = "application/octet-stream"
ContentType = "application/octet-stream"
61 End Select
End Select
62
63
64
65 Response.AddHeader "Content-Disposition", "attachment; filename=" & flName
Response.AddHeader "Content-Disposition", "attachment; filename=" & flName
66 Response.AddHeader "Content-Length", flsize
Response.AddHeader "Content-Length", flsize
67
68 Response.Charset = "UTF-8"
Response.Charset = "UTF-8"
69 Response.ContentType = ContentType
Response.ContentType = ContentType
70
71 Response.BinaryWrite objStream.Read
Response.BinaryWrite objStream.Read
72 Response.Flush
Response.Flush
73 response.Clear()
response.Clear()
74 objStream.Close
objStream.Close
75 Set objStream = Nothing
Set objStream = Nothing
76
77 %>
%>
 <%
<%2
 Response.Buffer = true
Response.Buffer = true3
 Response.Clear
Response.Clear4

5
 dim url
dim url6
 Dim fso,fl,flsize
Dim fso,fl,flsize7
 dim Dname
dim Dname8
 Dim objStream,ContentType,flName,isre,url1
Dim objStream,ContentType,flName,isre,url19
 '*********************************************调用时传入的下载文件名
'*********************************************调用时传入的下载文件名10
 Dname=trim(request("n"))
Dname=trim(request("n"))11
 '******************************************************************
'******************************************************************12
 If Dname<>"" Then
If Dname<>"" Then13
 '******************************下载文件存放的服务端目录
'******************************下载文件存放的服务端目录14
 url=server.MapPath("/")&"/"&Dname
url=server.MapPath("/")&"/"&Dname15
 '***************************************************
'***************************************************16
 End If
End If17

18
 Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fso=Server.CreateObject("Scripting.FileSystemObject")19
 Set fl=fso.getfile(url)
Set fl=fso.getfile(url)20
 flsize=fl.size
flsize=fl.size21
 flName=fl.name
flName=fl.name22
 Set fl=Nothing
Set fl=Nothing23
 Set fso=Nothing
Set fso=Nothing24
 %>
%>25
 <%
<%26
 Set objStream = Server.CreateObject("ADODB.Stream")
Set objStream = Server.CreateObject("ADODB.Stream")27
 objStream.Open
objStream.Open28
 objStream.Type = 1
objStream.Type = 129
 objStream.LoadFromFile url
objStream.LoadFromFile url30

31

32
 Select Case lcase(Right(flName, 4))
Select Case lcase(Right(flName, 4))33
 Case ".asf"
Case ".asf"34
 ContentType = "video/x-ms-asf"
ContentType = "video/x-ms-asf"35
 Case ".avi"
Case ".avi"36
 ContentType = "video/avi"
ContentType = "video/avi"37
 Case ".doc"
Case ".doc"38
 ContentType = "application/msword"
ContentType = "application/msword"39
 Case ".zip"
Case ".zip"40
 ContentType = "application/zip"
ContentType = "application/zip"41
 Case ".xls"
Case ".xls"42
 ContentType = "application/vnd.ms-excel"
ContentType = "application/vnd.ms-excel"43
 Case ".gif"
Case ".gif"44
 ContentType = "image/gif"
ContentType = "image/gif"45
 Case ".jpg", "jpeg"
Case ".jpg", "jpeg"46
 ContentType = "image/jpeg"
ContentType = "image/jpeg"47
 Case ".wav"
Case ".wav"48
 ContentType = "audio/wav"
ContentType = "audio/wav"49
 Case ".mp3"
Case ".mp3"50
 ContentType = "audio/mpeg3"
ContentType = "audio/mpeg3"51
 Case ".mpg", "mpeg"
Case ".mpg", "mpeg"52
 ContentType = "video/mpeg"
ContentType = "video/mpeg"53
 Case ".rtf"
Case ".rtf"54
 ContentType = "application/rtf"
ContentType = "application/rtf"55
 Case ".htm", "html"
Case ".htm", "html"56
 ContentType = "text/html"
ContentType = "text/html"57
 Case ".txt"
Case ".txt"58
 ContentType = "text/plain"
ContentType = "text/plain"59
 Case Else
Case Else60
 ContentType = "application/octet-stream"
ContentType = "application/octet-stream"61
 End Select
End Select62

63

64

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

68
 Response.Charset = "UTF-8"
Response.Charset = "UTF-8"69
 Response.ContentType = ContentType
Response.ContentType = ContentType70

71
 Response.BinaryWrite objStream.Read
Response.BinaryWrite objStream.Read72
 Response.Flush
Response.Flush73
 response.Clear()
response.Clear()74
 objStream.Close
objStream.Close75
 Set objStream = Nothing
Set objStream = Nothing76

77
 %>
%>
将上面的代码存成download.asp然后你就可以用<a herf=http://xxx.xxx.com/download.asp?n=<%=rs("**")%>点击下载</a> 来下载同一目录下的文件了!
唯一要注意的就是路径问题,数据库里保存的最好仅是文件的文件名,而不是整个相对路径
 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号