php 打包下载

示例一:打包下载指定目录下的所有图片文件

$dir = 'images/';

// 获取目录下所有图片文件
$files = glob($dir . '*.jpg');
$files = array_merge($files, glob($dir . '*.png'));
$files = array_merge($files, glob($dir . '*.gif'));

// 创建ZipArchive对象
$zip = new ZipArchive();

// 创建一个空白压缩包
$filename = 'images.zip';
if ($zip->open($filename, ZipArchive::CREATE) !== TRUE) {
    exit('无法创建文件');
}

// 向压缩包中添加文件
foreach ($files as $file) {
    $zip->addFile($file, basename($file));
}

// 关闭ZipArchive对象
$zip->close();

// 设置响应头,输出压缩包给用户下载
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$filename);
header('Content-Length: ' . filesize($filename));
readfile($filename);

示例二:打包下载当前日期前一个月的日报文档

$dir = 'daily-report/';

// 获取当前日期前一个月的时间戳
$date = strtotime('-1 month');

// 格式化时间戳为日期格式
$filename = date('Y-m-d', $date) . '.doc';

// 创建tar压缩包
exec('tar -cvzf '.$filename.'.tar.gz '.$dir.$filename);

// 设置响应头,输出压缩包给用户下载
header('Content-Type: application/x-gzip');
header('Content-Transfer-Encoding: binary');
header('Content-disposition: attachment; filename='.$filename.'.tar.gz');
header('Content-Length: ' . filesize($filename.'.tar.gz'));
readfile($filename.'.tar.gz');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值