2017-01-23 3 views
0

Wie kann ein csv-Datei-Download von innerhalb Angular auf einen Knopfklick ausgelöst werden?Angular Anfordern einer CSV-Datei Download-URL, und erzwingen Download

Das Backend ist die PHP-Route.

Ich probierte Lösungen, die ein Anker-Tag dynamisch hinzufügt und an das Attribut href des csv-Dateiinhalts anfügt, nachdem die HTTP-Anforderung abgerufen wurde. Aber es funktionierte nicht für mich ... Auch als wir den csc-Inhalt an das href-Attribut anhängen, machte ich mir Sorgen über die Länge des href, wie viel Inhalt es erlaubt.

Antwort

0

Nachdem ich mit den vorhandenen Antworten herumgespielt habe, habe ich das unten versucht und es hat funktioniert.

Mit Winkel 1.5.9

Ich habe es so funktioniert, indem die window.location auf die CSV-Datei herunterladen URL setzen. Getestet und funktioniert mit der neuesten Version von Chrome und IE11.

Angular

$scope.downloadStats = function downloadStats{ 
     var csvFileRoute = '/stats/download'; 
     $window.location = url; 
    } 

html

<a target="_self" ng-click="downloadStats()"><i class="fa fa-download"></i> CSV</a> 

in PHP setzen Sie die folgenden Überschriften für die Antwort:

$headers = [ 
    'content-type'    => 'text/cvs', 
    'Content-Disposition'  => 'attachment; filename="export.csv"', 
    'Cache-control'    => 'private, must-revalidate, post-check=0, pre-check=0', 
    'Content-transfer-encoding' => 'binary', 
    'Expires' => '0', 
    'Pragma' => 'public', 
]; 
+0

'text/cvs' oder' text/csv'? –

Verwandte Themen