当前位置:首页 > 技术分享

php利用ZipArchive类操作文件的实例

admin3年前 (2022-09-06)技术分享1939

ZipArchive类是专门用于文件的压缩与解压操作的类,通过压缩文件可以达到节省磁盘空间的目的,并且压缩文件体积更小,便于网络传输。

function filestozip($fileList,$filename=''){
        if(empty($fileList))return false;
        if(empty($filename))$filename=time().'.zip';
        $filename = "/uploads/temp/".$filename; // 压缩包所在的位置路径
        if(file_exists($filename))return $filename; 
        $zip = new \ZipArchive();
        $zip->open($filename,\ZipArchive::CREATE);   //打开压缩包
        foreach($fileList as $file){
            if(substr($file,0,4)=='http'){
                $ch = curl_init();
            	curl_setopt($ch, CURLOPT_POST, 0); 
            	curl_setopt($ch,CURLOPT_URL,$file); 
            	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
		        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
		        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
            	$fileContent = curl_exec($ch);
            	curl_close($ch);
                $zip->addFromString(basename($file), $fileContent);
            }else{
                $zip->addFile($file,basename($file));   //向压缩包中添加文件
            }
        }
        $zip->close();  //关闭压缩包]
        return $filename;
    }

有些接口还需要把压缩文件转为base64 便于传输

    function ZipFileToBase64String($filename){
        $base64 = null;
        $fileinfo = fopen($filename,"r");
        if($fileinfo){
            $filesize = filesize($filename);
            $content = fread($fileinfo,$filesize);
            $base64 = chunk_split(base64_encode($content));
        }
        fclose($fileinfo);
        return $base64;
    }


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/411.html

分享给朋友:

“php利用ZipArchive类操作文件的实例” 的相关文章

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

家里面买了斐讯盒子T1,必不可少的就是刷机,刷机一直爽,一直刷机一直爽,这样的快乐一般人体会不到。原来斐讯盒子N1,T1,还有斐讯K2P路由器也变成了性价比超高的东东,而且众多大神也带来了超多可玩性非常高的固件和破解。楼主今天扒到了相关超高…

安装Windows 10X 教你如何安装Win10X正式版 及下载地址

安装Windows 10X 教你如何安装Win10X正式版 及下载地址

安装Windows 10X 教你如何安装Win10X正式版:Windows 10X是Windows 10操作系统的新版本,主要针对双屏电脑。由于即将运行Windows 10X的双屏电脑(例如即将面世的Surface Neo)的开发遇到挫折,…

安卓模拟器连接端口 及常用命令

下面是我总结和测试通过的:有的是搜集来的模拟器名称                     &nbs…

百度云网盘高速下载方法[测试可用]

百度云网盘高速下载方法[测试可用]

大前提这是一个油猴脚本,安装脚本之前,必须先安装油猴浏览器扩展(如已安装则跳过):【第一步】下载油猴 --> 如有提示安装,则直接安装即可,否则继续执行第二步【第二步】安装油猴 --> 参考其中章节:&nbs…

抢先体验太阳谷!20H1、20H2、21H1替换“Dev版新图标”

尽量不要替换shell32.dll.mun和zipfldr.dll.mun,这两老哥可能会带来无法预测的风险!不解除被替换文件的硬链接,已确定会导致无法安装质量更新!(详见H大测评)单替换imageres.dll.mun新图标覆盖率基本可达…

【不忘初心】19041/19042/19043(20H1,20H2,21H1)告别繁琐 一键替换太阳谷图标 一键恢复原版图标 一键恢复文件夹预览

【不忘初心】19041/19042/19043(20H1,20H2,21H1)告别繁琐 一键替换太阳谷图标 一键恢复原版图标 一键恢复文件夹预览

一键替换太阳谷图标,一键恢复原版图标,注意是一键!!!  太阳谷图标确实很好看,很新颖 !论坛也有相关替换教程,有的需要改权限,有的需要PE下替换,有的还得重启,搞不好很容易翻车,有些小白同学只能望梅止渴,今天以上统统告…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。