Получите поврежденный файл при загрузке файла DOCX с помощью PHPWord

Я пытаюсь использовать «PHPWord» для загрузки файла DOCX.

Если я пытаюсь сохранить файл на сервере, он работает нормально. Но если добавить заголовки, чтобы загрузить его, то файл будет отображаться в поврежденной форме.

Примечание: я открываю его с помощью openOffice.

Вот мой код:

 $document->save($doc);
header('Content-Description: File Transfer');
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header("Content-Disposition: attachment; filename=CV.docx");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($doc));
readfile($doc);

Может кто-нибудь сказать, пожалуйста, в чем может быть проблема?

0

Решение

Позвольте мне сделать предположение:

Ваша программа выводит некоторый текст до ты отправил headerс (если вы не вручную echo это может быть предупреждение php, которое тоже считается выходным). Таким образом, в фактическом выводе вашего файла, если вы откроете его с помощью простого текстового редактора, как txt (просто переименуйте расширение в .txt и откройте его с помощью блокнота) первые строки будут примерно такими:

Warning: Cannot modify header information - headers already sent by (output started at /some/file.php:12) in /some/file.php on line 23

…а потом остальные ваши doc файл. Конечно, это испорчено.

Если это так, вы не должны выводить что-нибудь перед headers

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]