php php_zip.dll,php打包生成zip文件并下载

php打包生成zip文件并下载

ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启。

$filename = date ( ‘YmdHis’ ) . “.zip”; //最终生成的文件名(含路径)

if(!file_exists($filename)){

//重新生成文件

$zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {

exit(‘无法打开文件,或者文件创建失败’);

}

foreach( $fileNameArr as $key => $val){

//fileNameArr是需要打包的文件数组

$names = $key +1;

if(file_exists($val)){

$zip->addFile($val,basename($names.’.zip’));//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下

//addFile 的文件必须得找到,需要用到dirname(__FILE__)来找路径

}

}

$zip->close();//关闭

}

if(!file_exists($filename)){

exit(“无法找到文件”); //即使创建,仍有可能失败。。。。

}

header(“Cache-Control: public”);

header(“Content-Description: File Transfer”);

header(‘Content-disposition: attachment; filename=’.basename($filename)); //文件名

header(“Content-Type: application/zip”); //zip格式的

header(“Content-Transfer-Encoding: binary”); //告诉浏览器,这是二进制文件

header(‘Content-Length: ‘. filesize($filename)); //告诉浏览器,文件大小

@readfile($filename);

标签:PHP

#region Ionic.Zip压缩文件 //压缩方法一 public void ExeCompOne() { string FileName = DateTime.Now.ToString("yyMMddHHmmssff"); //ZipFile实例化一个压缩文件保存路径的一个对象zip using (ZipFile zip = new ZipFile(@"E:\\yangfeizai\\"+ FileName+".zip",Encoding.Default)) { //加密压缩 zip.Password = "123456"; //将要压缩的文件夹添加到zip对象中去(要压缩的文件夹路径和名称) zip.AddDirectory(@"E:\\yangfeizai\\"+"12051214544443"); //将要压缩的文件添加到zip对象中去,如果文件不存在抛错FileNotFoundExcept //zip.AddFile(@"E:\\yangfeizai\\12051214544443\\"+"Jayzai.xml"); zip.Save(); } } //压缩方法二 public void ExeCompTwo() { string FileName = DateTime.Now.ToString("yyMMddHHmmssff"); //ZipFile实例化一个对象zip using (ZipFile zip = new ZipFile()) { //加密压缩 zip.Password = "123456"; //将要压缩的文件夹添加到zip对象中去(要压缩的文件夹路径和名称) zip.AddDirectory(@"E:\\yangfeizai\\" + "12051214544443"); //将要压缩的文件添加到zip对象中去,如果文件不存在抛错FileNotFoundExcept //zip.AddFile(@"E:\\yangfeizai\\12051214544443\\"+"Jayzai.xml"); //用zip对象中Save重载方法保存压缩的文件,参数为保存压缩文件的路径 zip.Save(@"E:\\yangfeizai\\"+ FileName + ".zip"); } } #endregion #region //删除压缩包中的文件 //3.从zip文件中删除一个文件,注意无法直接删除一个文件夹 public void ExeDelete(string FileName) { using (ZipFile zip = ZipFile.Read(@"E:\\yangfeizai\\" + FileName + ".zip")) { //zip["Jayzai.xml"] = null; //删除zip对象中的一个文件 zip.RemoveEntry("Jayzai.xml"); zip.Save(); } } #endregion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值