2013-10-30 12 views
6

Al momento ho questo codice:Chiede all'utente di salvare il file usando una finestra di dialogo 'Salva come'?

function download(filename, text) { 
     var pom = document.createElement('a'); 
     pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); 
     pom.setAttribute('download', filename); 
     pom.click(); 
} 

download('test.html', string); 

stringa contiene un sacco di codice html che viene scritto nel file di a.html. Il codice sopra riportato funziona perfettamente. Con un clic del mouse, browser (chrome) scarica automaticamente un file html con il contenuto della stringa scritto in esso. Ora, quello che voglio fare è, invece di scaricare automaticamente il file, dovrebbe aprire una finestra di dialogo Salva come e chiedere all'utente la posizione e il nome del file e quindi scaricarlo in quella posizione. Una risposta rapida e semplice sarebbe molto apprezzata.

+1

Penso che userà sempre il comportamento predefinito, perché questo è ciò che l'utente si aspetta. –

+0

Bene, nel mio caso, l'utente dovrebbe essere in grado di impostare la posizione e il nome del file da salvare ... –

+0

Ciò avverrà automaticamente se il browser non ha ordinato al proprio browser di fare diversamente. Ma forse puoi forzarlo fornendo un diverso tipo mime tramite l'attributo 'type' per il collegamento. – CBroe

risposta

4

Il mio browser è stato impostato per scaricare automaticamente tutti i file nella posizione predefinita, motivo per cui non solo questo file, ma tutti gli altri file dal mio browser sono stati scaricati direttamente senza la finestra di dialogo Salva prompt. La modifica delle impostazioni nel browser su "Chiedi sempre al percorso di download" ha funzionato.

+0

Ho provato tutti i tipi di cose. Mi hai salvato. –

2

L'unico modo per farlo è quello di impostare l'intestazione del file sul server, in questo modo:

<FilesMatch "\.(?i:pdf)$"> 
    ForceType application/octet-stream 
    Header set Content-Disposition attachment 
</FilesMatch> 

L'attributo download non consente di modificare il nome del file o il tipo di file più in quanto è un evidente rischio per la sicurezza.

Quello che stai cercando di fare è replicare il tasto destro del mouse - salva-come dialogo ma temo che non sia possibile in questo momento.