2008-12-08 29 views
9

Este es el archivo de Excel que quiero que los usuarios puedan descargar de mi servidor. Debe haber una forma fácil de iniciar la descarga del archivo después de hacer clic en el botón "Descargar" ... pero no tengo ni idea de cómo hacerlo.Descargar un archivo usando Javascript

tengo esto hasta ahora: (VBScript y 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 

La función Javascript está vacía.

+2

Escriba sus comentarios utilizando el enlace "agregar comentario", sin escribir nuevas respuestas ... 1) Los usuarios serán notificados; 2) No mezclará comentarios y soluciones reales. – PhiLho

+0

Recibimos notificaciones para estos? "Accidentalmente" me encontré con tu comentario después de revisar mi perfil, sin ánimo de ofender. Gracias :) – Kablam

Respuesta

19

no vas a creer esto. encontrado ...

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

siento chicos!

+8

¿Por qué dices que lo sientes? Y si esta es la solución que utilizó, ¿por qué no está marcada como tal? – Mizipzor

+1

es una gran solución –

5

Si el servidor está configurado para desencadenar una descarga de archivos de ese tipo MIME, es tan simple como esto:

window.location = your_url 
21

En realidad, si desea una forma 'más eficientes' (y sexy), utiliza:

location.href = your_url; 

de esta manera, se ahorrará el compilador algún momento de subir a la cadena de prototipo location 's hasta el objeto window.

1

Aquí hay una función de VBScript para descargar un archivo binario.

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 
Cuestiones relacionadas