ユーザーが自分のサーバーからダウンロードできるようにしたいこのExcelファイルがあります。 「ダウンロード」ボタンをクリックした後、ファイルのダウンロードを開始する簡単な方法があるはずです...しかし、それを実現する方法がわかりません。
私はこれまでにこれを持っています:(VBscriptと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
Javascript関数は空です。
あなたはこれを信じるつもりはありません。それを見つけた...
function exportmasterfile()
{ var url='../documenten/Master-File.xls';
window.open(url,'Download');
}
すみません!
実際、「より効率的な」(そしてよりセクシーな)方法が必要な場合は、次を使用します。
location.href = your_url;
そうすれば、コンパイラがlocation
のプロトタイプチェーンからwindow
オブジェクトに到達するまでの時間を節約できます。
サーバーがそのmimeタイプのファイルのダウンロードをトリガーするように構成されている場合、これは次のように簡単です。
window.location = your_url
バイナリファイルをダウンロードするためのVBScript関数は次のとおりです。
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