2016-04-25 40 views
0

我有PHP辦公室集成在一個laravel應用程序。它運行在我的xampp本地主機上,但是當我在IIS生產服務器上使用它時,我得到「我們很抱歉,我們無法打開text.docx,因爲我們發現它的內容有問題。並且無法打開。「我可以通過點擊兩個錯誤彈出窗口警告我有關「無法讀取的內容」,然後打開文件。當我最終打開它時,該文件看起來很好。 IIS服務器使用PHP版本5.6.14,libxml2版本2.9.2與XML閱讀器&作者啓用和Zend擴展220131226. 這裏是有問題的代碼,我拉出部分,仍然有相同的錯誤,所以我知道它不是我的字符串格式。 也可能相關的是,在兩臺服務器上,文檔都以「讀取模式」而不是「打印版式」打開。我寧願它在打印版式中打開。PHPWord文件在IIS服務器上損壞

$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"); 

回答

0

如果代碼適用於XAMPP我不會擔心代碼。嘗試儘可能匹配環境。在IIS上運行PHP與在Linux環境下運行的不一樣。