我試圖根據用戶選擇的報告輸出內容來動態生成CSV文件。檢索數據並使用CakeResponse將其寫入文件已完成,但是我努力將文件擴展名設置爲'.csv',文件以普通文本文件的形式下載。 CakePHP的文檔建議我這樣做:在CakeResponse中設置文件擴展名
$this->response->type('csv');
..但即使這是行不通的,我仍然得到一個文本文件。任何人都可以點亮一下嗎?請注意,我沒有尋找新的方法來生成CSV文件,我只是想改變擴展名。謝謝。
這是我下載的文件:
$this->response->body($this->constructFileBody($logs));
return $this->response;
這是方法「constructFileBody」,雖然我覺得它超出了這個問題的範圍:
public function constructFileBody($logs = array()){
$content = "";
for($i = 0; $i < count($logs); $i++){
$row = $logs[$i]['EventLog'];
$line = $row['description'] . "," . $row['user'] . "," . $row['affected_user'] . "," . $row['report_title'] . "," . $row['date_created'] . "\n";
$content = $content . $line;
}
return $content;
}
顯示代碼您嘗試下載文件的方法 –
我已經添加了該方法。 – kingLoosh