ASP如何实现文件下载? [ADODB.Stream方式]

来源:互联网 发布:algorithm算法 编辑:程序博客网 时间:2024/04/28 03:56
以下是以前写的一个关于ASP如何下载文件的方法 。
利用的是ADODB.Stream。
源代码如下:
程序代码 程序代码

<%
'*****************************
'Author:yaosansi
'Site:http://www.yaosansi.com
'Date:2006-01-20
'*****************************




'===================================
'判断文件夹是否存在,不存在创建文件夹
'===================================
Function CreateFolder(Folder)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
If Folder<>"" then
   If not fso.FolderExists(Folder) Then
    Set f = fso.CreateFolder(Folder)
   End If
end if
CreateFolder = Folder
End Function




'===================================
'获取文件目录
'===================================
Function GetFilePath(FullPath,str)
If FullPath <> "" Then
GetFilePath = left(FullPath,InStrRev(FullPath, str))
Else
GetFilePath = ""
End If
End function


'===================================
'下载文件
'===================================
Function downloadFile(strFile)
' make sure you are on the latest MDAC version for this to work
' get full path of specified file
strFilename = server.MapPath(strFile)

' clear the buffer
Response.Buffer = True
Response.Clear

' create stream
Set s = Server.CreateObject("ADODB.Stream")
s.Open

' Set as binary
s.Type = 1

' load in the file
on error resume next

' check the file exists
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(strFilename) then
Response.Write("<h1>Error:</h1>"&strFilename&" does not exists!<p>")
Response.End
end if

' get length of file
Set f = fso.GetFile(strFilename)
intFilelength = f.size

s.LoadFromFile(strFilename)
if err then
Response.Write("<h1>Error: </h1>Unknown Error!<p>")
Response.End
end if

' send the headers to the users Browse
Response.AddHeader "Content-Disposition","attachment; filename="&f.name
Response.AddHeader "Content-Length",intFilelength
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"

' output the file to the browser
Response.BinaryWrite s.Read
Response.Flush

' tidy up
s.Close
Set s = Nothing

End Function
%>