2016-05-26 3 views
1

Arbeiten mit IE-10/11Wie öffne ich den Dialog zum Herunterladen von Dateien in JQuery nach Ajax Call?

ich eine Datei in JQuery bin Download

Common.ajax({ 
    dataType: 'text', 
    type: 'GET', 
    url: link, 
    data: {'_CONV_ID': convId}, 
    success: function (data) { 
     alert("File DOwnloaded" + data); 
     //How to say Browser to open dialog to open, save cancel the file download 
    }, 
    error: function (result) { 
     $.unblockUI(); 
     $.log(result.responseText); 
    } 
}); 

Warnmeldung erfolgreich auf dem Bildschirm angezeigt bekommen, sondern Dialog oder offene Datei nicht angezeigt zu speichern. Jemand schlägt vor, was man erfolgreich schreibt, um das zu bekommen?

+0

"Daten" ist Ihre Datei-URL? –

+0

Es muss Byte-Array sein, die wir als Antwort bekommen. Sie können mehr Parameter vorschlagen, die ich hier hinzufügen kann – fatherazrael

Antwort

1

versuchen, dies ..

var a = document.createElement('a'); 
var fileurl= window.URL.createObjectURL(new Blob([byteArray], { type: 'application/octet-stream' })); 
a.href = fileurl; 
a.download = filename; // Set the file name. 
a.style.display = 'none'; 
document.body.appendChild(a); 
a.click(); 
delete a; 
window.URL.revokeObjectURL(fileurl); 

byteArray von Daten sein sollten

+0

Oh Es zeigt Datei innerhalb des Webbrowsers an. Es sollte Downloaddialog geben, anstatt Seite – fatherazrael

+0

zu ändern, es gibt auch Aufenthalt auf Seite und verlässt den Seitendialog – fatherazrael

0

Bluish über diese ganz richtig ist, können Sie es durch Ajax nicht tun können, weil JavaScript nicht Dateien speichern kann direkt auf den Computer des Benutzers (aus Sicherheitsgründen). Leider zeigt die URL des Hauptfensters URL beim Dateidownload bedeutet, dass Sie wenig Kontrolle über die Benutzererfahrung haben, wenn ein Dateidownload stattfindet.

Ich erstellte jQuery File Download, die eine "Ajax Like" -Erfahrung mit Dateidownloads ermöglicht, die mit OnSuccess- und OnFailure-Callbacks für eine bessere Benutzererfahrung sorgen. Werfen Sie einen Blick auf meine blog post auf das gemeinsame Problem, dass das Plugin löst und einige Möglichkeiten, es zu verwenden und auch eine demo of jQuery File Download in action. Hier ist die source

Hier ist eine einfache Use Case Demo mit dem Plugin source mit Versprechungen. Die demo page enthält viele andere "bessere UX" -Beispiele.

$.fileDownload('some/file.pdf') 
    .done(function() { alert('File download a success!'); }) 
    .fail(function() { alert('File download failed!'); }); 
+0

Es funktioniert nicht für meinen Fall. Mein Link enthält QueryString, den es für IE10/IE11 nicht auswählt – fatherazrael

Verwandte Themen