PHP(Zend)及;Smarty-生成.doc文件和http头时出现问题

PHP(Zend)及;Smarty-生成.doc文件和http头时出现问题,php,zend-framework,http-headers,content-type,httpresponse,Php,Zend Framework,Http Headers,Content Type,Httpresponse,我在一个项目中使用Zend框架和Smarty模板生成器,我对这项工作以及ZF和Smarty都是新手。无论如何,在一个动作上有一个可点击的链接,用于生成.doc报告。单击后,它通过以下方法使用类生成.doc文件: $htmltodoc_instance -> createDoc($body , 'filename.doc', TRUE); /* the last parameter TRUE means: down

我在一个项目中使用Zend框架和Smarty模板生成器,我对这项工作以及ZF和Smarty都是新手。无论如何,在一个动作上有一个可点击的链接,用于生成.doc报告。单击后,它通过以下方法使用类生成.doc文件:

$htmltodoc_instance -> createDoc($body ,
                  'filename.doc',
                   TRUE);  
/* the last parameter TRUE means: download or save the file. it set the HTTP headers 
'Content-type: application/octet-stream' and 'Content-Disposition: attachment; 
 filename="..."', forcing the browser to open a download dialog for filename.doc
在此之前,它已被渲染为当前操作

 $this -> view -> obj_to_render = $obj_to_render.
将obj_to_render放置在视图中,而$obj_to_render通常是Smarty模板引擎的格式化html代码。 我不知道这是否是原因,但这似乎是问题的原因:视图呈现的下一个标题以某种方式“覆盖”了.doc下载对话框的标题,因此.doc文件的输出不成功。我尝试在createDoc()方法调用之后放置exit(),但它没有多大帮助。输出是不同的,但它仍然不显示我需要的信息。有人知道如何划分这两个操作,然后获得正确的文件输出吗? 谢谢

公共函数h2dAction()
{
$content='哇!它还活着!;
$HTMLDOC=新的HTML_TO_DOC();
$htmltodoc->docFile='wow.doc';
@$htmltodoc->createDoc($content,$htmltodoc->docFile,true);
死亡
}
GDocs可以很好地处理这个文件。无法测试MS Word,我没有:)

public function h2dAction()
{
    $content = '<strong>wow! it\'s alive!</strong>';

    $htmltodoc = new HTML_TO_DOC();
    $htmltodoc->docFile = 'wow.doc';
    @$htmltodoc->createDoc($content, $htmltodoc->docFile, true);
    die;
}