2010-10-20 13 views

risposta

18

Content-Disposition è un response header, vale a dire. il server deve restituirlo. Non è possibile raggiungere questo obiettivo con javascript lato client.

+0

Proprio questo è quello che ho pensato. –

10

I browser basati su Firefox e Chromium supportano lo download attribute. Se è necessaria una migliore compatibilità ora, utilizzare lo Downloadify basato su Flash come riserva. solo


HTML: utilizzare l'attributo download:

<a download href="http://upload.wikimedia.org/wikipedia/commons/b/bb/Wikipedia_wordmark.svg">Download</a>


Javascript solo: è possibile salvare qualsiasi file con questo codice:

function saveAs(uri) { 
 
    var link = document.createElement('a'); 
 
    if (typeof link.download === 'string') { 
 
     link.href = uri; 
 
     link.setAttribute('download', true); 
 

 
     //Firefox requires the link to be in the body 
 
     document.body.appendChild(link); 
 

 
     //simulate click 
 
     link.click(); 
 

 
     //remove the link when done 
 
     document.body.removeChild(link); 
 
    } else { 
 
     window.open(uri); 
 
    } 
 
} 
 

 
var file = 'http://upload.wikimedia.org/wikipedia/commons/b/bb/Wikipedia_wordmark.svg'; 
 
saveAs(file);

+1

Quando provo questo (come un principiante javaScript completo) si comporta come se avessi usato 'true' come nome desiderato del file scaricato. Penso che debba essere 'link.setAttribute ('download', '');' per evitare di fornire un nome suggerito per il file di download? – Speed8ump

Problemi correlati