2016-04-13 15 views
1

MeteorjsのPOST呼び出しから返された応答から.csvファイルに保存できません。応答からMeteorjs:応答から.csvファイルへ添付ファイルをダウンロードする方法は?

関連のヘッダー:応答から

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

content-disposition: attachment;filename=Dashboard.xlsx

content-encoding: gzip

内容:CSVにちんぷんかんぷん'\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);ちょうどパイプ。

代わりに、私はちょうど子プロセスとカールを生み出すことができると思っています。

+0

あなたのファイルが '.csv'ではなく' .xlsx'形式であるようですが、あなたの要求に書式定義のためのいくつかのパラメータがないことは確かですか? –

答えて

1

私はこのようなあなたの質問解釈:私はExcelで使用可能なCSVを返すようにしたい

を。

このためのルートを作成できます。

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

これは、Excelで開くことができるCSVを返します。

<a target="_blank" href="{{pathFor 'csvRoute'}}">Download CSV</a> 

ここで私はあなたがGETではなくPOSTをしたと言われたことに気付きました。しかし、理論は同じです。

+1

申し訳ありません。もう少し明確にすべきです:応答は外部サーバーからのもので、応答の内容を.csvファイルに保存したいと思います。 –

+1

私の悪いです。ごめんなさい。それから私の答えはあなたを助けません。とにかく幸運! – smoksnes

関連する問題