Download a file using Javascript
There's this Excel file I want users to be able to download from my server. There must be an easy way to initiate the download of the file after a click on the "Download" button... but I have no clue how to make that happen.
I have this so far: (VBscript and ASP)
<head>
<script type="text/javascript" src="overzicht.js"></script>
</head>
Set fs=Server.CreateObject("Scripting.FileSystemObject")
if (fs.FileExists("c:\file.xls"))=true then 'fake filename D:
response.write("<input type='button' value='Download Masterfile' class='button' onclick='exportmasterfile();' /><br />")
else
response.write("Masterfile not found. <br />")
end if
set fs=nothing
The javascript function is empty.
Actually, if you want a 'more-efficient' (and sexier) way, use:
location.href = your_url;
That way, you will save the compiler some time in going up to the location
's prototype chain up to the window
object.
you're not going to believe this. Found it...
function exportmasterfile()
{ var url='../documenten/Master-File.xls';
window.open(url,'Download');
}
Sorry guys!
If your server is configured to trigger a download for files of that mime type, it's as simple as this:
window.location = your_url
Here's a VBScript function to download a binary file.
Function SaveUrlToFile(url, path)
Dim xmlhttp, stream, fso
' Request the file from the internet.
Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
xmlhttp.open "GET", url, false
xmlhttp.send
If xmlhttp.status <> 200 Then
SaveUrlToFile = false
Exit Function
End If
' Download the file into memory.
Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 1 ' adTypeBinary
stream.Write xmlhttp.responseBody
stream.Position = 0 ' rewind stream
' Save from memory to physical file.
Set fso = Createobject("Scripting.FileSystemObject")
If fso.Fileexists(path) Then
fso.DeleteFile path
End If
stream.SaveToFile path
SaveUrlToFile = true
End Function