2017-03-27 6 views
1

私はPHPExcelを使用してExcelファイルを生成していますが、動作しません。私は、コードのこの部分にまでデバッグしていますZipArchiveは一時ファイルを生成しますが、コンテンツの書き込みはできません。エラーはありません

$objZip = new ZipArchive(); 

$ro = new ReflectionObject($objZip); 
$zipOverWrite = $ro->getConstant('OVERWRITE'); 
$zipCreate = $ro->getConstant('CREATE'); 

// Try opening the ZIP file 
// Debug result: both open() return true here 
if ($objZip->open($pFilename, $zipOverWrite) !== true) { 
    if ($objZip->open($pFilename, $zipCreate) !== true) { 
     throw new PHPExcel_Writer_Exception("Could not open " . $pFilename . " for writing."); 
    } 
} 

// Debug result: $objZip->close() would return true here 

// Add [Content_Types].xml to ZIP file 
// Debug result: it stops running on this line, no errors or exceptions 
$objZip->addFromString('[Content_Types].xml', ...); 

彼らは空になっているとして、ライン$objZip->addFromString()がディレクトリに一時ファイルを生成し、何らかの形でこれらのファイルに書き込むことができないようだ:

-rw-------. 1 www1 www1 0 Mar 27 15:21 test_output_20170327.xlsx.0BRqEn 
-rw-------. 1 www1 www1 0 Mar 27 15:21 test_output_20170327.xlsx.3Hbl1n 
-rw-------. 1 www1 www1 0 Mar 27 15:21 test_output_20170327.xlsx.5otErm 
... 

おそらくそれは許可の問題ですが、PHPユーザーwww1にはディレクトリへの書き込み権限があり、fwrite()はこれらの一時ファイルでうまく動作します。 PHPのバージョンは5.4.16です。

どのようなアイデアをお願いしますか?

+0

ユーザのために 'zip'コマンド(またはZipArchiveの他の基本コマンド)が何らかの形で無効になっている可能性があります。私のシステム管理者に確認してください。 – vicch

答えて

0

PHPアップデートで問題が発生しました。 Webサーバーを再起動して解決しました。

関連する問題