Search code examples
phphtmldocxphpwordphpoffice

Cannot find archive file. in PHPWord-0.16.0/vendor/phpoffice/common/src/Common/XMLReader.php


I want to convert docx file to html in php and send the contents as json response to angular side. I'm trying this code from here

require_once 'bootstrap.php';
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$objReader = \PhpOffice\PhpWord\IOFactory::createReader('Word2007');
$phpWord = $objReader->load("http://192.168.11.13/local/courses/5c2c5f8d810f9.docx");
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'HTML');
$objWriter->save('helloWorld.html');

I'm trying this code, where have I gone wrong? I have enabled allow_url_include. Throws error,

Fatal error: Uncaught Exception: Cannot find archive file. in /var/www/html/PHPWord-0.16.0/vendor/phpoffice/common/src/Common/XMLReader.php:51 Stack trace: #0 /var/www/html/PHPWord-0.16.0/src/PhpWord/Reader/Word2007.php(147): PhpOffice\Common\XMLReader->getDomFromZip('http://192.168....', '_rels/.rels') #1 /var/www/html/PHPWord-0.16.0/src/PhpWord/Reader/Word2007.php(112): PhpOffice\PhpWord\Reader\Word2007->getRels('http://192.168....', '_rels/.rels') #2 /var/www/html/PHPWord-0.16.0/src/PhpWord/Reader/Word2007.php(42): PhpOffice\PhpWord\Reader\Word2007->readRelationships('http://192.168....') #3 /var/www/html/PHPWord-0.16.0/test_word.php(14): PhpOffice\PhpWord\Reader\Word2007->load('http://192.168....') #4 {main} thrown in /var/www/html/PHPWord-0.16.0/vendor/phpoffice/common/src/Common/XMLReader.php on line 51

Solution

  • A possible solution may be, You can check file permission whether a file folder has permission to create an archive file as PHPWord code demands.

    Add 777 permission to your application folder. Maybe this will solve the above issue.