PHPWord文件在IIS服务器上已损坏

时间:2016-04-25 21:57:58

标签: php laravel iis phpword

我将PHP办公室集成在一个laravel应用程序中。当我在xampp本地主机上运行它时,它可以工作,但是当我在IIS生产服务器上使用它时,我得到了#34;我们很抱歉,我们无法打开text.docx,因为我们发现了一个问题它的内容。该文件已损坏,无法打开。"我可以点击另外两个错误弹出窗口警告我关于"不可读的内容"然后打开文件。当我最终打开它时,该文件看起来很好。 IIS服务器使用php版本5.6.14,libxml2版本2.9.2与xml reader&编写器启用和Zend Extension 220131226。 这是有问题的代码,我把这些部分拉出来仍然有相同的错误,所以我知道它不是我的字符串格式。 也可能相关的是,在两个服务器上,文档打开"读取模式"而不是"打印布局"。我希望它在Print Layout中打开。

$phpWord = new \PhpOffice\PhpWord\PhpWord();
$phpWord->getCompatibility()->setOoxmlVersion(15);      

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename="' . $client->last_name . '.docx"');
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
$objWriter->save("php://output");

1 个答案:

答案 0 :(得分:0)

如果代码适用于XAMPP,我不会担心代码。尝试尽可能地匹配环境。在PHP上运行IIS与在Linux环境中运行时不同。