0

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
ray
  • 5,454
  • 1
  • 18
  • 40
pooja
  • 45
  • 8

1 Answers1

0

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.

j_akshay
  • 59
  • 1
  • 5
  • i have given permissions but still it didn't work. It's only working with the relative path such as courses/filename.docx. – pooja Jan 11 '19 at 07:40
  • Yes @pooja it will only work with a relative path and you are loading absolute path. You try to first load file contents located at URL "http://192.168.11.13/local/courses/5c2c5f8d810f9.docx" with file_get_contents( ) and save it to your application folder. Now give that particular file as relative path to function $objReader->load( 'relative/path/here' ); – j_akshay Jan 11 '19 at 13:40