2016-08-02 13 views
0

ich möchte eine Datei automatisch mit Javascript oder jquery herunterladen unten ist der Code, den ich benutze, aber dieser Code öffnen Sie die Datei in neuen Registerkarte im Browser nicht auf der Festplatte herunterladen.Wie lade ich eine Datei auf einen Datenträger mit einem bestimmten Speicherort mit Javascript oder jquery?

function SaveToDisk(fileUrl, fileName) { 
    var hyperlink = document.createElement('a'); 
    hyperlink.href = fileUrl; 
    hyperlink.target = '_blank'; 
    hyperlink.download = fileName || fileUrl; 

    (document.body || document.documentElement).appendChild(hyperlink); 
    hyperlink.onclick = function() { 
     (document.body || document.documentElement).removeChild(hyperlink); 
    }; 

    var mouseEvent = new MouseEvent('click', { 
     view: window, 
     bubbles: true, 
     cancelable: true 
    }); 

    hyperlink.dispatchEvent(mouseEvent); 

    // NEVER use "revoeObjectURL" here 
    // you can use it inside "onclick" handler, though. 
    // (window.URL || window.webkitURL).revokeObjectURL(hyperlink.href); 

    // if you're writing cross-browser function: 
    if(!navigator.mozGetUserMedia) { // i.e. if it is NOT Firefox 
     window.URL.revokeObjectURL(hyperlink.href); 
    } 
} 


     SaveToDisk('http://example.com/service/getUserImage/339/256', 'image.png'); 

Antwort

0

Verwenden XMLHttpRequest() Datei vom Server als Blob anzufordern, nutzt URL.createObjectURL(), <a> Element mit download Attribute und href Attribute auf Blob URL, rufen dann .click() auf <a> Element.

var request = new XMLHttpRequest(); 
request.open("GET", "http://example.com/service/getUserImage/339/256"); 
request.responseType = "blob"; 
request.onload = function() { 
    var a = document.createElement("a"); 
    a.href = URL.createObjectURL(this.response); 
    a.download = this.response.name; 
    document.body.appendChild(a); 
    a.click(); 
} 
request.send(); 
+0

cn Sie bitte sagen Sie mir, wie –

+0

nicht funktioniert, während Get-Methode Antwort ist null und nichts passiert –

+0

@SumitAggarwal _ "funktioniert nicht, während Get-Methode Antwort ist null und nichts passiert" _ Was bedeutet 'console.log (this.response)' log ? Kannst du ein PLNR http://plnr.co erstellen, um das zu demonstrieren? – guest271314

0

JS

function(url){ 
    window.href(url); 
} 
+0

Ihr Code öffnet die Datei im Browser. Ich möchte es auf meinem Speicherplatz automatisch herunterladen, da es keine Schaltfläche zum Klicken gibt –

+0

Ich habe Update meine Antwort –

+0

window.open (URL) öffnet auf newtab nu widow.href (URL) herunterladen. –

0
var count=0; 
$('#testdownload').on('click', function(){ 
count++; 
$('#log').append('<li>Click triggered ' + count + ' times</li>'); 
}); 

$('#testdownload').get(0).click(); 

Demo

+0

Ich habe keine klickbare Sache –

+0

Ja, ich habe das so jede Seite aktualisieren, es wird Ihre Doct herunterladen. – Ranjan

+0

Wollen Sie Mausereignis für diese oder was? – Ranjan

1

versuchen Sie Folgendes:

einen versteckten Link erstellen, wenn das Ajax mit einem Attribute von Download abgeschlossen ist, lösen ein Click-Ereignis auf diesem Link

$('body').append('<a class="hidden-ajax" download href="'+url+'"></a>') 
$('.hidden-ajax').trigger('click'); 
+0

nicht nichts arbeiten happend –

+0

aktualisiert meine Antwort herunterladen müssen – madalinivascu

Verwandte Themen