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

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

admin4年前 (2022-09-06)技术分享1989

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类操作文件的实例” 的相关文章

php-cgi占用太多cpu资源而导致服务器响应过慢 利用进程和Linux的proc 定位耗资源文件

php-cgi占用太多cpu资源而导致服务器响应过慢 利用进程和Linux的proc 定位耗资源文件

在此环境下,一般php-cgi运行是非常稳定的,但也遇到过php-cgi占用太多cpu资源而导致服务器响应过慢,我所遇到的php-cgi进程占用cpu资源过多的原因有: 1. 一些php的扩展与php版本兼容存在问题,实践证明 e…

mysql update不支持set子查询更新 的解决办法

mysql update不支持set子查询更新 的解决办法

先看示例:SELECT uin,account,password,create_user_uin_tree FROM sys_user结果:表中的create_user_uin_tree标识该条记录由谁创建。创…

php高效检测远程图片是否存在

php高效检测远程图片是否存在function img_exits($url){     $ch = curl_init();    &…

解决 SVN Skipped 'xxx' -- Node remains in conflict

更新命令:svn up提示代码:意思就是说 ,这个文件冲突了,你要解决下Updating '.': Skipped 'data/config.php' -- …

Nginx服务崩溃自动重启脚本(监控进程服务并自动重启进程服务)脚本

有一台服务器运行着Ngin最近突然有一次崩溃,导致使用方当天无法访问网页端,然后我不得不登录服务器,检查各项服务,发现nginx崩溃了,于是重启Nginx,问题解决。后来为了防止Nginx再发生这种情况给运维带来的运维成本,于是写了一个脚本…

七牛html js上传带进度条源码

七牛html js上传带进度条源码注册链接https://s.qiniu.com/uM7RJv完整代码下载:https://n802.com/f/349707-489018989-c141f6(访问密码:5036)http://www.yi…

发表评论

访客

看不清,换一张

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