回 帖 发 新 帖 刷新版面

主题:如何实现下载的功能..(比较简单的)

大虾们如何实现下载的功能..(比较简单的)

回复列表 (共5个回复)

沙发

我在809个人站点 找到相关的代码


809个人站点中写到:
'将下边的文件保存为Download.asp就可以了,
'然后根据需要传要下载的文件过来就可以了。
'格式:Download.asp?FileName=要下载的文件名

Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
    Response.Write "无效文件名."
    Response.End
End if
' 下面是不希望下载的文件
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
    Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
        Response.Write "受保护文件,不能下载."
        Response.End
End Select
' 下载这个文件
Response.Clear
Response.ContentType = "application/octet-stream"
Response.AddHeader "content-disposition", "attachment; filename=" & FileName
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.LoadFromFile Server.MapPath(FileName)
While Not Stream.EOS
    Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End



但我不明白下面两句话:
'然后根据需要传要下载的文件过来就可以了。
'格式:Download.asp?FileName=要下载的文件名

哪位大虾能否解释一下,最好详细一点,我是个菜鸟。。。高分回报!!!回答就有分

板凳

'然后根据需要传要下载的文件过来就可以了。
'格式:Download.asp?FileName=要下载的文件名

意思就是在你做下载连接时把要下载的文件的文件名及后缀传递给Download.asp

如:

<a href="Download.asp?FileName=123.exe">123文件下载</a>

3 楼


不好使。。。。。。


有没有其他的方法?


4 楼

我是ASP新手,在做文件下载功能的时候遇到点问题,各位大侠帮帮我.
我用ASP,IIS,VBScript做了个校园网,我把要下载的文件放在了download文件夹里,网站的文件地址是http://www.shool.edu.cn/download/2006324650.rar.
一定要用函数实现吗,能用VBScript实现吗?能写段详细代码给我吗

5 楼

' Download the file with the given name at current path
' Return values: 0 - success, 1 - file not found, 2 - read error
Public Function Download(fileName)
    Const chunk = 65535
    
    Dim filePath, fileSize, i, stream
    
    Set stream = Server.CreateObject("ADODB.Stream")

    filePath = FSO.BuildPath(path, fileName)
    If not FSO.FileExists(filePath) Then 
        Download = 1
    Else
        stream.Type = 1
        stream.Open 

        on error resume next                    
        stream.LoadFromFile(filePath)
        
        fileSize = stream.Size
        
        If err.Number<>0 Then
            Download = 2
        Else
            Response.AddHeader "Content-Disposition","attachment;filename="  & fileName
            Response.AddHeader "Content-Length", fileSize
            Response.CharSet = "UTF-8" 
            Response.ContentType = "application/x-msdownload"

            For i = 1 To fileSize \ chunk
                If Not Response.IsClientConnected Then Exit For
                Response.BinaryWrite stream.Read(chunk)
            Next

            If fileSize Mod chunk > 0 Then 
                If Response.IsClientConnected Then 
                    Response.BinaryWrite stream.Read(fileSize Mod chunk) 
                End If 
            End If 

            Download = 0
        End If
        
        stream.Close 
    End If
End Function

我来回复

您尚未登录,请登录后再回复。点此登录或注册