Задать вопрос
@Iossarian

Почему PHPWord отдает битый файл?

Добрый вечер. Использую следующий код для заполнения файла с помощью PHPWord в yii2 на Ubuntu:
$PhpWord = new \PhpOffice\PhpWord\PhpWord();
                $document = $PhpWord->loadTemplate('/var/www/basic/web/Dogovor.docx'); //шаблон
                $document->setValue('company_name', $_POST['News']['title'] );
                $document->setValue('worker',  $_POST['News']['text']);
            header("Content-Type:application/vnd.ms-office");
            header('Cache-Control: max-age=0');
            header('Content-Disposition: attachment;filename="Dogovor.docx"');
            $document->saveAs('php://output');

При попытке открытия файла, он ломается и предлагает попробовать его восстановить, но успехом это не заканчивается.
5c77e5a0e2d82252738633.png
Если же сохранять заполненный файл локально, а не отдавать в браузер, то проблем нет. В чем может быть дело?
  • Вопрос задан
  • 754 просмотра
Подписаться 1 Средний 7 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Iossarian Автор вопроса
Решение оказалось в использовании метода renderPartial() заместо render().
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы