zipArchive在PHP中打开错误(zipArchive open error in PHP)

2019-07-21 11:33发布

不能创建在PHP zip压缩包,总是返回ZIPARCHIVE :: ER_MULTIDISK

$fileName=$_SERVER['DOCUMENT_ROOT'].'/temp/temp.zip';
$zip = new ZipArchive();
$err=$zip->open($fileName,ZipArchive::CREATE);
$zipFileFunctionsErrors = array(0=>'OK',
        ZIPARCHIVE::ER_MULTIDISK => 'Multi-disk zip archives not supported.',
        ...,
        ...
);
echo $zipFileFunctionsErrors[$err];
$zip->addFromString('empty.txt', '');
$zip->close();

输出

Multi-disk zip archives not supported

zip文件没有创建

本地机器上的代码工作良好

Answer 1:

我觉得你的问题应该要与PHP版本,听起来像那就是:(从php.net评论):

如果使用不合格zip_open返回false一些老的PHP版本,以及较新版本返回错误(为整数)的数量,所以不是这样的:

$zip = zip_open($zip_file);
if ($zip) {
  // consider zip file opened successfully
}

用这个:

$zip = zip_open($zip_file);
if (is_resource($zip)) {
  // consider zip file opened successfully
}

听起来你是从阵列,得到的第一个非数字索引也许“1”为“真”,这就是为什么它显示你的错误阵列上的元素“1”



Answer 2:

首先,检查是否可以与服务器端PHP创建文件。 有可能是一个身份的问题。 PHP可以在IE浏览器进行操作:Apache的ID卡和身份证是yourFtpId ..

然后检查拉链库与服务器上的PHP支持的phpinfo可以显示。

然后检查你的服务器配置允许从PHP的zip命令。

当这些诊断已经结束,如果你发现这些问题,您应该解决的服务器管理员来解决这些问题。



文章来源: zipArchive open error in PHP