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 Folder using Classic ASP
I tried to use this code http://blog.netnerds.net/2007/01/classic-asp-push-file-downloads-from-directory-outside-of-the-web-root/ but this doesnt work for Http it works good if the files are local.
I want to do it automatically.
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
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
%> 
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With