2016-04-13 7 views
1

Ich habe Probleme beim Speichern in einer CSV-Datei aus einer Antwort von einem POST-Aufruf in Meteorjs.Meteorjs: Wie man Anhang von Antwort auf .csv-Datei herunterladen?

Relevante Header aus der Antwort:

content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8.

content-disposition: attachment;filename=Dashboard.xlsx

content-encoding: gzip

Inhalt aus der Antwort: '\u001f�\b\u0000\u0000\u0000\u0000\u0000\u0000\u0003\u0002\u0000\u0000\u0000��\u0003\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000'

file.write(response.content); gerade Rohre, die in eine CSV-Kauderwelsch.

Als eine Alternative, ich denke, ich kann nur ein Kind Prozess und locken.

+0

Es sieht so aus, als ob die Datei, die Sie bekommen, im '.xlsx' Format statt' .csv' ist, sind Sie sicher, dass Sie in Ihrer Anfrage keinen Parameter für die Formatdefinition verpassen? –

Antwort

1

interpretiere ich Ihre Frage wie folgt aus:

Ich möchte eine CSV zurückzukehren, die von Excel verwendet werden kann.

Sie können eine Route dafür erstellen.

Router.route('/yourpath/csv', { 
    where: 'server', 
    name: 'csvRoute', 
    action: function() { 
     var filename = 'foo.csv'; 
     var fileData = '\ufeff'; // Add unicode signature for Excel. 
     fileData += "header1;header2;"; // headers 

     // headers so that the browser knows what to do. 
     var headers = { 
      'Content-Type': 'text/csv;charset=utf-8;', 
      'Content-Disposition': "attachment; filename=" + filename 
     }; 

     // fill with content. 
     for(int i = 0; i < 10; i++) 
     { 
      fileData += "value1_" + i + ";value2_" + i + ";" 
      fileData += "\r\n"; 
     } 
     this.response.writeHead(200, headers); 
     return this.response.end(fileData); 
    } 
}); 

Dadurch wird eine CSV-Datei zurückgegeben, die Sie in Excel öffnen können.

Jetzt bemerkte ich, dass Sie sagten, dass Sie einen POST und nicht ein GET gemacht haben. Aber die Theorie ist dieselbe.

+1

Entschuldigung - sollte etwas mehr geklärt haben: Die Antwort stammt von einem externen Server und ich möchte den Inhalt der Antwort in einer .csv-Datei speichern. –

+1

Mein schlechtes. Es tut uns leid. Dann wird meine Antwort dir nicht helfen. Viel Glück trotzdem! – smoksnes

Verwandte Themen