【问题标题】:zipArchive open error in PHPPHP中的zipArchive打开错误
【发布时间】:2013-03-13 09:18:00
【问题描述】:

无法在 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 文件未创建

在本地机器代码上效果很好

【问题讨论】:

    标签: php zip zlib ziparchive


    【解决方案1】:

    我认为您的问题必须与 php 版本有关,听起来是这样的: (来自 php.net cmets):

    如果 zip_open 失败,一些较旧的 PHP 版本会返回 false,而较新的版本会返回错误的数量(以整数形式),所以不要这样:

    $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”的原因

    【讨论】:

      【解决方案2】:

      首先,检查您是否可以在服务器端使用 php 创建文件。可能存在身份问题。 php 可以操作,即:apache id,你的 id 是 yourFtpId..

      然后检查服务器上的php是否支持zip库,phpinfo可以显示。

      然后检查您的服务器配置是否允许来自 php 的 zip 命令。

      当这些诊断结束后,如果您发现这些问题有问题,您应该联系服务器管理员来解决这些问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-08
        • 2013-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-21
        相关资源
        最近更新 更多