【问题标题】:phpdocx + ob_clean + download = errorphpdocx + ob_clean + 下载 = 错误
【发布时间】:2015-02-23 21:29:46
【问题描述】:

我使用phpdocx 库在 Word 中制作报告。默认情况下,download 函数包含以下行:

$this->save($tmp_filename);
... many headers
ob_clean();
flush();
readfile($tmp_filename);            
exit;

使用ob_clean 函数没有任何反应 - 没有加载任何内容。如果我注释掉这一行,则文件开始加载。但是它会加载一个错误,当我尝试打开文件时会出现该错误。错误消息说文件已损坏等。但是,如果我打开临时文件本身 - 没关系。所以,我想知道的是ob_clean函数和整个下载函数有什么问题。

编辑

我用ob_end_clean 替换了ob_clean,问题就消失了。

【问题讨论】:

    标签: php phpdocx


    【解决方案1】:

    你不需要使用 ob clean 或 flush;有一个内置函数可以为 phpdocx 执行此操作:

    例如:

    require_once '../../classes/CreateDocx.inc';
    $docx = new CreateDocx();
    $text = 'Lorem ipsum dolor sit amet.';
    $docx->addText($text, $paramsText);
    $docx->createDocxAndDownload('example_text');
    

    @ref:http://www.phpdocx.com/api-documentation/layout-and-general/create-and-download-docx-with-PHP

    【讨论】:

    • 好像我的库(我的意思是 phpdocx)已经过时了。当我第一次将它合并到我的应用程序中时,它只包含几个文件。所以,现在我的源代码中没有createDocxAndDownload
    • 你看过phpword.codeplex.com吗?我在需要自动生成单词 .docx 的应用程序中使用它来生成单词。 codeplex 也有 phpexcel,它也可以使用。它的文档非常棒,包含大量示例代码 sn-ps。我使用 composer 来安装我的应用程序库的源代码,如果它已经过时,它就是最新的。此外,它的开源和免费。我认为 phpdocx 是付费许可问题。当我尝试创建 .doc 文件时遇到了挑战,我使用了开源标准 .docx,它们是一堆 xml 符号。
    • 在 office 2003 及以下版本中,您可以从 MS 网站下载一个 comp 包以支持 .docx 文件。
    猜你喜欢
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多