我的PHP脚本不想创建ZIP文件

时间:2019-06-10 20:54:48

标签: php

我试图编写一个脚本,该脚本将一些数据放入zip文件中。我认为我已经做好了,但是他没有创建zip文件。

我已经尝试了很多,但是没有找到问题。

<?php
$sql_abfrage_cloud = "SELECT * FROM dateien WHERE code = '$zugang' ORDER BY id"; 
$abfrage_cloud = $mysqli->query($sql_abfrage_cloud);
$verzeichnis = '/upload/';
$zip_name = date("dHis").'_fc.zip';             
$anz_dateien = 0;
$error = 'fatal';
while($fetch = $abfrage_cloud->fetch_assoc()){
    $anz_dateien = $anz_dateien + 1;
    $zip_datei[$anz_dateien] = $fetch['path'];
}
$zip_arch = new ZipArchive;
$status = $zip_arch->open($zip_name, ZipArchive::CREATE);
if($status==true){
    foreach($zip_datei as $datei){
        $zip_arch->addFile($verzeichnis.$datei, $datei);
    }                                                                                      

    if(file_exists($zip_name)){
        $error = 'false';
    } else {
        $error = 'true';
    }
}
?>

我期望$ error将是'false',但是它是'true'。

1 个答案:

答案 0 :(得分:1)

您需要致电$zip_arch->close()来保存完成写入文件的操作。

在比较===的结果时,您还应该使用$zip_archive->open(),因为非真实结果是数字,当类型变戏法为true时,任何非零数字都等于$zip_arch = new ZipArchive; $status = $zip_arch->open($zip_name, ZipArchive::CREATE); if($status===true){ foreach($zip_datei as $datei){ $zip_arch->addFile($verzeichnis.$datei, $datei); } $zip_arch->close(); if(file_exists($zip_name)){ $error = 'false'; } else { $error = 'true'; } } 允许。

{{1}}