2014-12-17 8 views
5

Sto creando un elemento CSV in JavaScript e quindi simulando un clic per scaricare il rispettivo file.Richiedi una posizione di download invece di scaricare direttamente

Ma invece di scaricare direttamente voglio che apra un prompt di download per scegliere il percorso del file da scaricare.

var csvString = Papa.unparse(result,{ 
           quotes: false, 
           delimiter: ",", 
           newline: "\r\n" 
         }); 
var a   = document.createElement('a'); 
a.href  = 'data:attachment/csv,' + escape(csvString); 
a.download = "download.csv"; 
a.click(); 

Come può essere fatto?

+1

Non è possibile. L'utente può scegliere cosa succede per diversi tipi di file. Tu (lo sviluppatore dell'app) non puoi ignorare le sue scelte (dell'utente). –

+0

@torazaburo Il problema è che l'utente non può scegliere. Lo sviluppatore dell'app afferma che il nome è "download.csv" e viene salvato in questo modo senza l'intervento dell'utente. – Chet

+0

Ciò accadrebbe se l'utente avesse scelto di salvare i file senza chiedere conferma. L'utente deve invertire questa scelta; il modo preciso per farlo dipende dal sistema operativo. Ad esempio, Chrome ha un'opzione nelle sue Impostazioni su "Chiedi dove salvare ogni file prima del download". L'utente sarà quindi in grado di scegliere dove salvare il file e/o modificare il nome predefinito. –

risposta

7

Questa è un'impostazione specifica del browser.

  1. In Chrome: Vai Settings > Downloads > e quindi selezionare casella di controllo Ask where to save each file before downloading
  2. In Firefox: Vai Tools > Options, aperto General scheda e selezionare il pulsante di opzione Always ask me where to save files
  3. In Internet Explorer 8: Quando la finestra si apre su , fare clic sul pulsante Save e scegliere la posizione.
Problemi correlati