J'utilise un programme NODEJS en tant que serveur et une application Web angularjs en tant que client.
Pour créer le CSV J'utilise la bibliothèque "Express-CSV" ( https://www.npmjs.com/package/express-csv ) p>
Voici mon côté serveur Code: p>
Définit: P>
$http.get("http://"+$localStorage.ip+":"+$localStorage.port+"/exportDB").success(function(response){ // HERE I NEED A WAY TO DOWNLOAD THE RECEIVED CSV });
5 Réponses :
Vous pouvez simplement naviguer:
location.href = "http://"+$localStorage.ip+":"+$localStorage.port+"/exportDB";
Cela fonctionne mais je reçois un fichier nommé "exportdb" sans fin. (Si j'ajoute le '.csv' c'est OK). Vous savez comment puis-je nommer le fichier sur le serveur avant d'envoyer?
@ Guyben-moshe, vous devez définir les en-têtes res.Setheader ("disposition de contenu", "pièce jointe; nom_file = '+ nom de fichier); res.Setheader ('type de contenu', mimeType); code>
Vous pouvez créer une balise et cliquer dessus:
$http.get("http://"+$localStorage.ip+":"+$localStorage.port+"/exportDB").success(function(response) { var dataURI = 'data:application/octet-stream;base64,' + btoa(response); $('<a></a>').attr({ download: 'db.csv', href: dataURI })[0].click(); });
Il existe des moyens de télécharger CSV. La première approche consiste à créer une balise et cliquez sur IT
Ajoutez le MIMEType dans ci-dessous Données de code: Application / Stream d'octet P>
if (window.navigator.msSaveOrOpenBlob){ // base64 string var base64str = response; // decode base64 string, remove space for IE compatibility var newstr =base64str.replace(/\s/g, ''); var binary = atob(newstr); // get binary length var len = binary.length; // create ArrayBuffer with binary length var buffer = new ArrayBuffer(len); // create 8-bit Array var view = new Uint8Array(buffer); // save unicode of binary data into 8-bit Array for (var i = 0; i < len; i++) { view[i] = binary.charCodeAt(i); } // create the blob object with content-type "application/csv" var blob = new Blob( [view], { type: mimeType }); window.navigator.msSaveOrOpenBlob(blob, "Name your file here"); }
J'ai confronté le même problème que les solutions mentionnées ci-dessus avec fonctionne bien avec Chrome et Firefox, mais pas avec Safari / Ie. p>
a essayé de suivre le piratage et cela a fonctionné pour moi- p>
Le téléchargement de fichier sera géré par le navigateur lui-même.
Bien que la limitation est la limitation - p>
Il y a une autre approche qui a fonctionné et c'était - P>
Suggestions et discussions Bienvenue! P>
Var URL = "http: //' et/+procalstorage.ip+ ':" + $ localtstorage.port +' / exportDB ';
formulaire var = angulaire.Element ("
Var URL = "http: //' et/+procalstorage.ip+ ':" + $ localtstorage.port +' / exportDB ';
$ window.location.href = URL;
code> p>
Ici, j'ai essayé de le rendre simple. Attribuez tous les enregistrements d'extrémité arrière que vous souhaitez afficher dans le fichier dans la variable appelée obj. Je vais juste le dire comme var obj = []. Et à l'intérieur de la fonction, ajoutez simplement le code ci-dessous.