2008-12-08 8 views
9

Es gibt diese Excel-Datei, die ich Benutzer von meinem Server herunterladen können. Es muss einen einfachen Weg geben, den Download der Datei nach einem Klick auf den "Download" -Button zu starten ... aber ich habe keine Ahnung, wie ich das machen kann.Laden Sie eine Datei mit Javascript

ich diese haben bisher: (VBscript und 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 

Die Javascript-Funktion ist leer.

+2

Schreiben Sie Ihre Kommentare mit "Kommentar hinzufügen" -Link, keine neuen Antworten schreiben ... 1) Die Benutzer werden benachrichtigt; 2) Sie werden Bemerkungen und echte Lösungen nicht mischen. – PhiLho

+0

Wir bekommen Benachrichtigungen für diese? Ich bin "zufällig" auf deinen Kommentar gestoßen, nachdem ich mein Profil überprüft habe, nichts für ungut. Danke :) – Kablam

Antwort

19

werden Sie das nicht glauben. Gefunden

function exportmasterfile() 
{ var url='../documenten/Master-File.xls';  
    window.open(url,'Download'); 
} 

Sorry guys!

+8

Warum sagen Sie, dass es Ihnen leid tut? Und wenn das die Lösung ist, die Sie verwendet haben, warum ist sie nicht als solche gekennzeichnet? – Mizipzor

+1

es ist eine großartige Lösung –

5

Wenn der Server einen Download auszulösen für Dateien dieses MIME-Typs konfiguriert ist, ist es so einfach wie diese:

window.location = your_url 
21

Eigentlich, wenn Sie eine ‚mehr effiziente‘ (und sexier) Art und Weise mögen, Verwendung:

location.href = your_url; 

auf diese Weise werden Sie den Compiler einige Zeit in gehen bis zu dem location ‚s Prototypkette bis zum window Objekt speichern.

1

Hier ist eine VBScript-Funktion zum Herunterladen einer Binärdatei.

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