无法使用PHP创建zip文件
我已经创建了以下代码来创建一个zip文件。我正在从数据库中提取文件列表,这取决于我从全局$\u GET数组中获取的$job\u编号,然后尝试将它们添加到zip文件中 那部分很好用。它正在从数据库中提取文件列表,我可以通过回显或转储打印结果看到这一点 唯一的问题是根本没有创建.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
$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);