я использую phpdocx
библиотека для создания отчетов в Word. По умолчанию, download
Функция содержит следующие строки:
$this->save($tmp_filename);
... many headers
ob_clean();
flush();
readfile($tmp_filename);
exit;
С ob_clean
Функция ничего не происходит — ничего не загружается. Если я закомментирую эту строку, то файл начнет загружаться. Но он загружается с ошибкой, которая появляется, когда я пытаюсь открыть файл. Сообщение об ошибке говорит, что файл поврежден и т. Д. Однако, если я открою сам временный файл — это нормально. Итак, я хочу знать, что может быть не так с ob_clean
функция и с функцией загрузки в целом.
РЕДАКТИРОВАТЬ
Я заменил ob_clean
с ob_end_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
Других решений пока нет …