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

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

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

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 AES加解密 (ECB模式/sha1prng算法/PKCS5Padding和PKCS7Padding补码) ECB 模式不需求设置 iv

php7+ 版本/**  * [AesSecurity aes加密,支持PHP7+]  * 算法模式:ECB  * 密钥长度:128  * 补…

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

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

用apicloud 免费,简单封装一个wap手机网站成android app

用apicloud 免费,简单封装一个wap手机网站成android app

APICloud是国内较早布局低代码开发的平台之一,其发布的低代码效率工具Plus Mode,为IT项目中每个角色提供专业工具,将需求分析、产品原型、UI设计、前端开发、后端开发紧密衔接,并基于行业大数据对前置环节进行复用,最终缩减大量重复…

微软 Win11 安卓子系统已支持运行支付宝等 APK 应用(附手动侧载安装教程攻略)

微软 Win11 安卓子系统已支持运行支付宝等 APK 应用(附手动侧载安装教程攻略)

微软博客宣称,Windows 11 上 安卓子系统运行 Android  应用程序的第一个预览版现已提供给美国 Beta 频道的 Windows 内部人员。Windows 11 安卓子系统支…

TeraCloud:日本免费15G网盘,支持WebDav。适合搭配Zotero,AirExplorer实现自动同步备份

TeraCloud:日本免费15G网盘,支持WebDav。适合搭配Zotero,AirExplorer实现自动同步备份

TeraCloud是日本老牌网盘,速度挺快的。注册之后输入邀请码:“SX3BY”还可获得额外的5 GB.(如果你不输入邀请码,只能有10G)。经过我自己的尝试,我发现windows自带的资源管理器同步并不好,推荐Teracloud推荐的一些…

Bootstrap动态切换主题(通用)

bootstrap有个网站叫做bootswatch,其中已经设计了一些很美的主题:要想使用也是很简单的,只需要下载其中的bootstrap.css或者bootstrap.min.css并覆盖到自己项目的对应文件就行了。如果你想动态切换的话,…

发表评论

访客

看不清,换一张

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