phpdocx + ob_clean + 下载 = 错误
phpdocx + ob_clean + download = error
我使用 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
,问题消失了。
您不需要使用 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
库在 Word 中制作报告。默认情况下,download
函数包含这些行:
$this->save($tmp_filename);
... many headers
ob_clean();
flush();
readfile($tmp_filename);
exit;
使用 ob_clean
函数没有任何反应 - 没有加载任何内容。如果我注释掉这一行,文件就会开始加载。但是它加载时出现错误,当我尝试打开文件时会出现该错误。错误消息说文件已损坏等。但是,如果我打开临时文件本身 - 没问题。所以,我想知道的是 ob_clean
功能和整个下载功能有什么问题。
编辑
我用 ob_end_clean
替换了 ob_clean
,问题消失了。
您不需要使用 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