分享编程~
 

php多文件打包压缩下载简单示例

调用php中内置扩展ZipArchive类可以进行文件压缩打包下载,(PHP 5>=5.2.0,PHP 7,PECL zip>=1.1.0)

天天特卖抢好货

调用php中内置扩展ZipArchive类可以进行文件压缩打包下载,(PHP 5>=5.2.0,PHP 7,PECL zip>=1.1.0)

简单示例:

<?php
function zipfile($file_path){
    // 压缩多个文件
    $fileList = explode(',', $file_path);
    $filename = time() . ".zip"; // 压缩包所在的位置路径
    $zip = new ZipArchive();
    $zip->open($filename, ZipArchive::CREATE);   //打开压缩包
    foreach ($fileList as $file) {
        $zip->addFile($file, basename($file));   //向压缩包中添加文件
    }
    $rs = $zip->close();  //关闭压缩包
 
    //下载文件
    $file = fopen($filename, "r");
    //返回的文件类型
    Header("Content-type: application/octet-stream");
    //按照字节大小返回
    Header("Accept-Ranges: bytes");
    //返回文件的大小
    Header("Accept-Length: " . filesize($filename));
    //这里设置客户端的弹出对话框显示的文件名
    Header("Content-Disposition: attachment; filename=" . $filename);
    //一次性将数据传输给客户端
    //echo fread($file, filesize($filePath));
    //一次只传输1024个字节的数据给客户端
    //向客户端回送数据
    $buffer = 1024;//
    //判断文件是否读完
    while (!feof($file)) {
        //将文件读入内存
        $file_data = fread($file, $buffer);
        //每次向客户端回送1024个字节的数据
        echo $file_data;
    }
    //将生成的zip文件在服务器端删除,只需要客户端下载就行了
    @unlink($filename);
}
zipfile('E:\www\test\filetest\getfile\1.jpg,E:\www\test\filetest\getfile\1.txt');
?>

ZipArchive::addEmptyDir — 添加新目录

ZipArchive::addFile — 将文件从给定路径添加到ZIP存档

ZipArchive::addFromString — 使用文件的内容将文件添加到ZIP存档

ZipArchive::addGlob — 按glob模式从目录添加文件

ZipArchive::addPattern — 按PCRE模式从目录添加文件

ZipArchive::close — 关闭活动存档(已打开或新创建)

ZipArchive::count — 统计存档中的文件数

ZipArchive::deleteIndex — 使用存档中的索引删除该项

ZipArchive::deleteName — 删除存档中使用其名称的条目

ZipArchive::extractTo — 提取存档内容

ZipArchive::getArchiveComment — 返回Zip存档注释

ZipArchive::getCommentIndex — 使用条目索引返回条目的注释

ZipArchive::getCommentName — 返回使用项名称的项的注释

ZipArchive::getExternalAttributesIndex — 检索由其索引定义的项的外部属性

ZipArchive::getExternalAttributesName — 检索由其名称定义的项的外部属性

ZipArchive::getFromIndex — 使用其索引返回项内容

ZipArchive::getFromName — 使用其名称返回条目内容

ZipArchive::getNameIndex — 返回使用其索引的项的名称

ZipArchive::getStatusString — 返回状态错误消息、系统和/或zip消息

ZipArchive::getStream — 获取由其名称定义的条目的文件处理程序(只读)

ZipArchive::isCompressionMethodSupported — 检查libzip是否支持压缩方法

ZipArchive::isEncryptionMethodSupported — 检查libzip是否支持加密方法

ZipArchive::locateName — 返回存档项的索引

ZipArchive::open — 打开压缩文件存档

ZipArchive::registerCancelCallback — 注册回调以允许在存档关闭期间取消。

ZipArchive::registerProgressCallback — 注册回调以在存档关闭期间提供更新。

ZipArchive::renameIndex — 重命名由其索引定义的项

ZipArchive::renameName — 重命名由其名称定义的项

ZipArchive::replaceFile — 用给定的路径替换ZIP存档中的文件

ZipArchive::setArchiveComment — 设置ZIP存档的注释

ZipArchive::setCommentIndex — 设置由其索引定义的项注释

ZipArchive::setCommentName — 设置由名称定义项注释

ZipArchive::setCompressionIndex — 设置由索引定义的项的压缩方法

ZipArchive::setCompressionName — 设置由名称定义的项的压缩方法

ZipArchive::setEncryptionIndex — 设置由其索引定义的项的加密方法

ZipArchive::setEncryptionName — 设置由名称定义的项的加密方法

ZipArchive::setExternalAttributesIndex — 设置由其索引定义的项的外部属性

ZipArchive::setExternalAttributesName — 设置由名称定义的项的外部属性

ZipArchive::setMtimeIndex — 设置由其索引定义的项的修改时间

ZipArchive::setMtimeName — 设置由名称定义的条目的修改时间

ZipArchive::setPassword — 设置活动存档的密码

ZipArchive::statIndex — 获取由其索引定义的项的详细信息

ZipArchive::statName — 获取由名称定义的项的详细信息

ZipArchive::unchangeAll — 撤消存档中所做的所有更改

ZipArchive::unchangeArchive — 还原存档中完成的所有全局更改

ZipArchive::unchangeIndex — 还原对给定索引项所做的所有更改

ZipArchive::unchangeName — 还原对具有给定名称的条目所做的所有更改


上一篇:前端csv2arr.js库表格execl文件数据解析下一篇:php多文件批量打包压缩下载类库不依赖其他扩展
赞(0) 踩(0)
您说多少就多少,您的支持是我最大的动力
赏金
微 信
赏金
支付宝
本文连接: https://www.yj521.com/article/113.html
版权声明: 本文为原创文章,版权归《越加网》所有,分享转载请注明出处!