2014-12-17 7 views
5

Ich erstelle ein CSV-Element in JavaScript und simuliere dann einen Klick, um die entsprechende Datei herunterzuladen.Abfrage eines Download-Verzeichnisses anstelle des direkten Herunterladens

Aber anstatt direkt herunterzuladen, ich möchte es eine Download-Aufforderung öffnen, um den Speicherort der Datei zu wählen, die heruntergeladen werden soll.

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(); 

Wie kann das gemacht werden?

+1

Sie können nicht. Der Benutzer kann wählen, was für verschiedene Dateitypen passiert. Sie (der App-Entwickler) können seine (die Benutzer-) Auswahl nicht überschreiben. –

+0

@torazaburo Das Problem ist der Benutzer nicht zu wählen. Der App-Entwickler sagt, der Name ist "download.csv" und es wird so ohne Benutzereingriff gespeichert. – Chet

+0

Das würde passieren, wenn der Benutzer gewählt hätte, Dateien ohne Aufforderung zu speichern. Der Benutzer muss diese Wahl rückgängig machen; Die genaue Vorgehensweise hängt vom Betriebssystem ab. Zum Beispiel hat Chrome in seinen Einstellungen die Option "Nach dem Speichern der einzelnen Dateien vor dem Herunterladen fragen". Der Benutzer kann dann auswählen, wo die Datei gespeichert werden soll, und/oder den Standardnamen ändern. –

Antwort

7

Dies ist eine Browser-spezifische Einstellung.

  1. In Chrome: zu Settings > Downloads > gehen und dann Checkbox Ask where to save each file before downloading
  2. In Firefox wählen: Zum Tools > Options, offene General Registerkarte und wählen Sie Radioknopf Always ask me where to save files
  3. In Internet Explorer 8: Wenn der Download-Dialog eröffnet , klicke auf Save und wähle den Ort aus.
Verwandte Themen