如何使用 PHP ZipArchive 创建 Zip 文件并下载

当您想要使用PHP的ZipArchive类来创建一个Zip文件并将其下载到客户端时,您可以按照以下详细步骤操作:

创建一个ZipArchive对象:

1.首先,创建一个ZipArchive对象,它将用于创建和管理Zip文件。

$zip = new ZipArchive();

 

2.创建临时Zip文件:

您需要指定Zip文件的名称。通常,您可以将其设置为一个临时文件,以便稍后下载完成后删除。

$zipFileName = 'example.zip';

 

3.打开Zip文件:

使用open方法来打开Zip文件,如果成功打开,则可以添加文件或数据。

if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
// 可以添加文件或数据到Zip文件
} else {
echo '无法创建Zip文件';
}

 

4.添加要压缩的文件或数据:

使用addFromString方法将要压缩的文件或数据添加到Zip文件中。以下是一个示例,将两个文本文件添加到Zip文件中:

$file1Contents = 'This is the content of file 1.';
$zip->addFromString('file1.txt', $file1Contents);

$file2Contents = 'This is the content of file 2.';
$zip->addFromString('file2.txt', $file2Contents);

5.关闭Zip文件:

$zip->close();

 

在添加完所有文件或数据后,务必关闭Zip文件。

6.设置HTTP响应头:

header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="' . $zipFileName . '"');
header('Content-Length: ' . filesize($zipFileName));

 

在开始将Zip文件发送到客户端之前,您需要设置一些HTTP响应头,以指示浏览器将文件作为下载处理。这包括设置Content-Type、Content-Disposition和Content-Length头。

7.将Zip文件内容发送到客户端:

readfile($zipFileName);

 

使用readfile函数将Zip文件的内容发送到客户端。

8.删除临时Zip文件:

为了避免在服务器上堆积垃圾文件,下载完成后删除临时Zip文件。

unlink($zipFileName);

 

完整的PHP代码示例如下:

<?php
$zip = new ZipArchive();
$zipFileName = 'example.zip';

if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
// 添加要压缩的文件或数据
$file1Contents = 'This is the content of file 1.';
$zip->addFromString('file1.txt', $file1Contents);

$file2Contents = 'This is the content of file 2.';
$zip->addFromString('file2.txt', $file2Contents);

// 关闭Zip文件
$zip->close();

// 设置HTTP响应头,指示要下载Zip文件
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="' . $zipFileName . '"');
header('Content-Length: ' . filesize($zipFileName));

// 输出Zip文件内容到客户端
readfile($zipFileName);

// 删除临时Zip文件
unlink($zipFileName);

exit;
} else {
echo '无法创建Zip文件';
}
?>

 

这个示例会创建一个包含两个文件的Zip文件,并将其发送给客户端进行下载。您可以根据需要自定义文件和Zip文件的名称。

THE END
分享
二维码
海报
如何使用 PHP ZipArchive 创建 Zip 文件并下载
当您想要使用PHP的ZipArchive类来创建一个Zip文件并将其下载到客户端时,您可以按照以下详细步骤操作
<<上一篇
下一篇>>