Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用PHP创建zip文件_Php - Fatal编程技术网

无法使用PHP创建zip文件

无法使用PHP创建zip文件,php,Php,我已经创建了以下代码来创建一个zip文件。我正在从数据库中提取文件列表,这取决于我从全局$\u GET数组中获取的$job\u编号,然后尝试将它们添加到zip文件中 那部分很好用。它正在从数据库中提取文件列表,我可以通过回显或转储打印结果看到这一点 唯一的问题是根本没有创建.zip文件。我看不出哪里出了问题 $sth = $conn->prepare('SELECT `dp_filename` FROM damage_pics WHERE dp_job_number = :job_numb

我已经创建了以下代码来创建一个zip文件。我正在从数据库中提取文件列表,这取决于我从全局$\u GET数组中获取的$job\u编号,然后尝试将它们添加到zip文件中

那部分很好用。它正在从数据库中提取文件列表,我可以通过回显或转储打印结果看到这一点

唯一的问题是根本没有创建.zip文件。我看不出哪里出了问题

$sth = $conn->prepare('SELECT `dp_filename` FROM damage_pics WHERE dp_job_number = :job_number');
$sth->bindParam(':job_number', $job_number);
$sth->setFetchMode(PDO::FETCH_ASSOC);
$sth->execute();

$zip = new ZipArchive();
$zip->open('example5.zip', ZipArchive::CREATE);
$result = $sth->fetchAll();


echo '<pre>';
print_r($result);

foreach ($result as $file)
{
    // just echoing for testing purposes to see if file name is created correctly.
    $image = $file['dp_filename'];
    echo $image . "<br />";
    $zip->addFile("uploads/{$image}");
}

$zip->close();

听起来您的PHP脚本运行时没有足够的权限写入目标目录。我做了一些实验,在这种情况下,$zip->open调用会无声地失败,没有任何错误迹象

您可以将以下代码放在顶部,以确定这是否确实是问题所在:


为了解决这个问题,我建议使用绝对路径和文件名,比如/tmp/example5.zip,然后确保执行脚本的用户可以写入目标目录,不管用户运行的是HTTP服务器软件,比如www数据还是httpd,取决于操作系统和发行版。

在哪里保存zip文件?该目录可写吗?确保您的PHP版本上安装了ZipArchive。
$fp = fopen('example5.zip', 'w');
if ($fp === FALSE) { die("Cannot open example5.zip for writing"); }
fclose($fp);