gpt4 book ai didi

php - 使用 PHP 从 MySQL 文件创建 zip 存档

转载 作者:行者123 更新时间:2023-11-29 23:08:26 25 4
gpt4 key购买 nike

我正在尝试在下载之前将 XML 文件从 MySQL 数据库放入 zip 存档中。我能够创建 zip 文件,但 Windows 在打开它时出错。

错误消息:窗口无法打开文件夹。文件名.zip 无效

这是我的代码:

 <?php

if(isset($_GET['id']))
{

$id = intval($_GET['id']);


if($id <= 0) {
die('The id is invalid!');
}
else
{
// Connect to the database
$dbLink = new mysqli('localhost', 'root', 'root', 'db');
if(mysqli_connect_errno()) {
die("MySQL connection failed: ". mysqli_connect_error());
}



$zip = new ZipArchive();
$filename = "export_".date('Y.m.d H.i').".zip";

if ($zip->open($filename, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE) !== true)
{
echo "Cannot Open for writing";
}


$zip->addEmptyDir('Section');

$query = "SELECT name,data FROM file_section WHERE id ='$id'";
$result = $dbLink->query($query);


if($result->num_rows == 1)
{
// Get the row

$row = mysqli_fetch_array($result);
}
while($row = mysql_fetch_array($result))
{
$zip->addFile($row['data'], "{$row['name']}.xml");
}

$zip->close();



header("Content-disposition: attachment; filename='.$filename'");
header('Content-type: application/zip');


readfile($fileName);
}


// Free the mysqli resources
mysqli_free_result($result);
}
else {
echo "Error! Query failed: <pre>{$dbLink->error}</pre>";
}
mysqli_close($dbLink);


?>

PS:我的 PHP 知识有限。

最佳答案

测试一下:在 addFile zip 对象之前创建一个临时文件请参阅http://php.net/manual/en/ziparchive.addfile.php

addFile方法等待第一个参数文件名(要添加的文件的路径)

关于php - 使用 PHP 从 MySQL 文件创建 zip 存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28190854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com