2008-12-08 18 views
9

Istnieje plik Excel, który chcę, aby użytkownicy mogli pobierać z mojego serwera. Musi istnieć łatwy sposób na rozpoczęcie pobierania pliku po kliknięciu przycisku "Pobierz" ... ale nie mam pojęcia, jak to zrobić.Pobierz plik przy użyciu kodu JavaScript

mam to tak daleko: (VBScript i 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 

Funkcja JavaScript jest pusty.

+2

Napisz swoje komentarze za pomocą linku "dodaj komentarz", nie pisz nowych odpowiedzi ... 1) Użytkownicy zostaną powiadomieni; 2) Nie będziesz mieszał uwag i prawdziwych rozwiązań. – PhiLho

+0

Otrzymujemy powiadomienia o tych? "Przypadkowo" wpadłem na twój komentarz po tym, jak sprawdziłem swój profil, bez obrazy. Dzięki :) – Kablam

Odpowiedz

19

nie uwierzysz w to. Znaleziono ...

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

Sorry guys!

+8

Dlaczego mówisz, że Ci przykro? A jeśli to jest używane rozwiązanie, dlaczego nie jest oznaczone jako takie? – Mizipzor

+1

to świetne rozwiązanie –

5

Jeśli serwer jest skonfigurowany do wyzwalania pobieranie plików tego typu MIME, to tak proste, jak to:

window.location = your_url 
21

Właściwie, jeśli chcesz „bardziej wydajne” (i seksownego) sposób, używać:

location.href = your_url; 

w ten sposób można zaoszczędzić kompilator trochę czasu w podchodząc do location „s aż do łańcucha prototypów obiektu window.

1

Oto funkcja VBScript do pobrania pliku binarnego.

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 
Powiązane problemy