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です。
どのようなアイデアをお願いしますか?
ユーザのために 'zip'コマンド(またはZipArchiveの他の基本コマンド)が何らかの形で無効になっている可能性があります。私のシステム管理者に確認してください。 – vicch