CakePHP中Web服务的返回格式错误

时间:2013-03-20 09:09:08

标签: php web-services cakephp csv

我在返回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文档”。 我不明白。

我已经关闭了控制器中的视图渲染。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

为什么只是从控制器或模型中回显一些格式化的字符串是不合适的。 我发现有一个用于的响应类。代码如下:

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

请务必使用正确的“类型”。