【发布时间】:2011-10-14 09:16:32
【问题描述】:
我在一个项目中使用 Zend 框架和 Smarty 模板生成器,我是这项工作的新手,也是 ZF 和 Smarty 的新手。无论如何,在一个动作中,有一个可点击的链接用于生成 .doc 报告。单击后,它会通过此方法使用HtmlToDoc 类生成一个.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(),但它确实有很大帮助。输出不同,但它仍然不显示我需要的信息。有人知道如何划分这两个操作然后获得正确的文件输出吗? 谢谢!
【问题讨论】:
标签: php zend-framework http-headers content-type httpresponse