0

我在返回 Web 服务时遇到问题,标头如下所示:

header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.$this->filename.".csv".'"');

我收集数据并像这样返回它:

    foreach($this->output_data as $each_table) {
        foreach($each_table as $each_row) {
            foreach($each_row as $each_key => $each_value){ 
                $string .= Sanitize::escape($each_value).$this->delimiter;
            }                              
            $string .= "\n";
        }            
    }
    print($string); 

我希望 csv 文件作为流回来。但返回的是“ Firefox HTML 文档”。我不明白。

我已经关闭了控制器中的视图渲染。我能做些什么?

4

1 回答 1

0

为什么只从控制器或模型中回显一些格式化的字符串是不正确的。我发现有一个 Response-Class 可以使用。下面的代码:

$this->response->header(array( 'Content-Disposition: attachment; filename="<filename.ext>"));
$this->response->type('application/text-csv');                     
$this->response->body(<returnData>);

一定要使用正确的“类型”。

于 2014-03-26T12:49:41.730 回答