Download Files from URL using Classic ASP

前端 未结 2 714
醉梦人生
醉梦人生 2021-01-05 16:30

I have few urls which are linked to a pdf example

abc.com/1.pdf abc.com/2g.pdf abc.com/i8.pdf

What i wanted to do is Download the PDFs automatically in a Fo

相关标签:
2条回答
  • 2021-01-05 17:03

    I got this code somewhere on the internet if anyone wants to use it.

    <%
    Server.ScriptTimeout = 60 * 20
    ' Set your settings
    strFileURL = "http://pathtofile.zip"
    strHDLocation = "c:\filename.zip"
    
    ' Fetch the file
    Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.3.0")
    
    objXMLHTTP.Open "GET", strFileURL, False
    objXMLHTTP.Send()
    
    If objXMLHTTP.Status = 200 Then
        Set objADOStream = CreateObject("ADODB.Stream")
        objADOStream.Open
        objADOStream.Type = 1 'adTypeBinary
    
        objADOStream.Write objXMLHTTP.ResponseBody
        objADOStream.Position = 0 'Set the stream position to the start
    
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        If objFSO.FileExists(strHDLocation) Then objFSO.DeleteFile strHDLocation
        Set objFSO = Nothing
    
        objADOStream.SaveToFile strHDLocation
        objADOStream.Close
        Set objADOStream = Nothing
    End if
    
    Set objXMLHTTP = Nothing
    %> 
    
    0 讨论(0)
  • 2021-01-05 17:09

    I used the code posted by user580950 and the comment by AnthonyWJones and created a function version of the code. Call the function and it returns the content type of the file downloaded or an empty string if the file wasn't found.

    public function SaveFileFromUrl(Url, FileName)
        dim objXMLHTTP, objADOStream, objFSO
    
        Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.3.0")
    
        objXMLHTTP.open "GET", Url, false
        objXMLHTTP.send()
    
        If objXMLHTTP.Status = 200 Then 
            Set objADOStream = CreateObject("ADODB.Stream")
            objADOStream.Open
            objADOStream.Type = 1 'adTypeBinary
    
            objADOStream.Write objXMLHTTP.ResponseBody
            objADOStream.Position = 0 'Set the stream position to the start
    
            Set objFSO = Createobject("Scripting.FileSystemObject")
            If objFSO.Fileexists(FileName) Then objFSO.DeleteFile FileName
            Set objFSO = Nothing
    
            objADOStream.SaveToFile FileName
            objADOStream.Close
            Set objADOStream = Nothing
    
            SaveFileFromUrl = objXMLHTTP.getResponseHeader("Content-Type")
        else
            SaveFileFromUrl = ""
        End if
    
        Set objXMLHTTP = Nothing
    end function
    
    0 讨论(0)
提交回复
热议问题