php ZipArchive实现多文件打包下载实例_php技巧

来源:脚本之家  责任编辑:小易  

1.文件下载header("Content-type:text/html;charset=utf-8");设置头信息if!file_exists($file_dir.$name)){/判断是否存在某个文件echo"File not found!如果不存在就提示用户文件未找到} else {file=fopen($file_dir.$name,"r");否则就读取文件Header("Content-type:application/octet-stream");设置浏览器下载需要的头,告诉客户端的浏览器服务端返回的文件形式 是一个下载文件Header("Accept-Ranges:bytes");告诉客户端浏览器返回的文件大小是按照字节进行计算的Header("Accept-Length:".filesize($file_dir.$name));告诉浏览器返回的文件大小Header("Content-Disposition:attachment;filename=".$name);告诉浏览器返回的文件的名称echo fread($file,filesize($file_dir.$name));按字节读取文件fclose($file);关闭文件资源}2.文件压缩:PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,addEmptyDir()添加一个新的文件目录addFile()将文件添加到指定zip压缩包中。ddFromString()添加的文件同时将内容添加进去open()打开一个zip压缩包close()关闭ziparchiveextractTo()将压缩包解压getStatusString()返回压缩时的状态内容,包括错误信息,压缩信息等等deleteIndex()删除压缩包中的某一个文件,如:deleteIndex(0)删除第一个文件deleteName()删除压缩包中的某一个文件名称,同时也将文件删除。注意点:使用open方法的时候,第二个参数$flags是可选的,$flags用来指定对打开的zip文件的处理方式,共有四种情况1.ZIPARCHIVE:OVERWRITE 总是创建一个新的文件,如果指定的zip文件存在,则会覆盖掉2.ZIPARCHIVE:CREATE 如果指定的zip文件不存在,则新建一个3.ZIPARCHIVE:EXCL 如果指定的zip文件存在,则会报错4.ZIPARCHIVE:CHECKCONS一、解压缩zip文件zip=new ZipArchive;新建一个ZipArchive的对象if($zip->open('test.zip')=TRUE){zip->extractTo('images');假设解压缩到在当前路径下images文件夹内zip->close();关闭处理的zip文件}二、将文件压缩成zip文件zip=new ZipArchive;if($zip->open('test.zip',ZipArchive:OVERWRITE)=TRUE){zip->addFile('image.txt');假设加入的文件名是image.txt,在当前路径下zip->close();}三、文件追加内容添加到zip文件zip=new ZipArchive;res=$zip->open('test.zip',ZipArchive:CREATE);if($res=TRUE){zip->addFromString('test.txt','file content goes here');zip->close();echo 'ok';}else{echo 'failed';}四、将文件夹打包成zip文件function addFileToZip($path,$zip){handler=opendir($path);打开当前文件夹由$path指定。while(($filename=readdir($handler))!false){if($filename!."&$filename!."){/文件夹文件名字为'.'和‘.’,不要对他们进行操作if(is_dir($path."/".$filename)){/如果读取的某个对象是文件夹,则递归addFileToZip($path."/".$filename,$zip);}else{/将文件加入zip对象zip->addFile($path."/".$filename);}}}closedir($path);}zip=new ZipArchive();if($zip->open('images.zip',ZipArchive:OVERWRITE)=TRUE){addFileToZip('images/',$zip);调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法zip->close();关闭处理的zip文件}3.php处理flash扩展:ming库:phpf=new SWFFont('_sans');创建指向一个内置字体(_sans)的指针t=new SWFTextField();创建文本字段t->setFont($f);设定字体t->setColor(0,0,0);颜色t->setHeight(400);大小,t->addString('Hello World');提供一些文本内容(“Hello World”)m=new SWFMovie();创建了一个 SWFMovie 对象并设定其尺寸m->setDimension(2500,800);m->add($t);向动画中添加了文本元素并将动画保存到文件中。m->save('hello.swf');在本地保存为 hello.swf打开浏览器输入 hello.swf 就可以看到了哦。header('Content-type:application/x-shockwave-flash');m=new SWFMovie();m->setDimension(300,300);s=new SWFShape();s->setLine(5,0,0,0);s->movePenTo(-100,-100);s->drawLineTo(100,100);ts=$m->add($s);ts->moveTo(150,150);for($i=0;i;i+){ts->rotate(10);m->nextframe();}m->save('rotate.swf');从-100,-100 到 100,100 画了一条直线。这将把直线的中心放在坐标 0,0 处。这样,当我在旋转图形时,直线的中心将发生旋转。当我向动画中添加图形时,将移动返回到框架中心的 SWFDisplayItem。然后用 rotate()方法使它旋转并每旋转一周就增大其框架。phpimg=new SWFBitmap(file_get_contents('megan.jpg'));s=new SWFShape();imgf=$s->addFill($img);s->setRightFill($imgf);s->movePenTo(0,0);s->drawLineTo($img->getWidth(),0);s->drawLineTo($img->getWidth(),$img->getHeight());s->drawLineTo(0,$img->getHeight());s->drawLineTo(0,0);m=new SWFMovie();m->setDimension($img->getWidth()*2,$img->getHeight()*2);is=$m->add($s);is->moveTo($img->getWidth()/2,$img->getHeight()/2);for($i=0;i;i+){is->skewx(0.02);is->skewy(-0.03);m->nextframe();}m->save('image.swf');www.zgxue.com防采集请勿采集本网。

实例代码:

public function backupfiles(){ filename=\"backups/\".time().\".zip;zip=new \\ZipArchive();zip->open($filename,\\ZipArchive:CREATE);path='demo';指定的目录 this->addFileToZip($path,$zip);}

public function downLoad($dataUrl,$saveName) { $datalist = [ ROOT_PATH.'/public/introduce/110.docx', ROOT_PATH.'/public/upfile/110.zip' ];// print_r($datalist);die; $filename = ROOT_PATH.'\public\/'.$saveName.'.zip'; if(file_exists($filename)){ unlink($filename); } $zip = new \ZipArchive(); if ($zip->open($filename,\ZipArchive::CREATE)!== true){ exit('无法打开文件,或者文件创建失败'); } foreach ($dataUrl as $index => $item) { if (DIRECTORY_SEPARATOR=='\\'){ $item = str_replace('/',DIRECTORY_SEPARATOR,$item); $filename = str_replace('/',DIRECTORY_SEPARATOR,$filename); }// var_dump($item);// var_dump(file_exists($item));die; if (file_exists($item)){ $zip->addFile($item,basename($item)); } } $zip->close(); if(!file_exists($filename)){ exit("无法找到文件"); //即使创建,仍有可能失败 } header('Content-Type: application/zip'); header('Content-disposition: attachment; filename='.basename($filename)); header('Content-Length: ' . filesize($filename)); @readfile($filename);     @unlink ( $filename );}

这是驱动出错的提示,去N卡官网重新下载一个和操作系统匹配的驱动程序重新更新即可。①开始→控制面板→系统 ②系统→设备管理器 ③右键显示适配器→显卡设备→更新驱动程序软件 ④使用自动更新

注意:里面的路径全部用绝对路径,不然会找不到文件

提示没有7-ZIP解压程序。因为驱动文件一般较大,很多驱动提供者使用大压缩率的7-ZIP进行压缩打包,故安装驱动前,需要先解压压缩包。如果电脑端没有安装7-ZIP,则需要先安装。

附赠其他操作:

原因及解决方法如下:显卡输出能否到显示器上,和显卡驱动是否安装完整,显卡驱动是否和显卡匹配,显卡驱动是否通过微软验证正相关.问题解决:电脑一装显卡驱动就出现NOn7-Ziparchive,证明安装

解压缩zip文件

PHP(PHP:Hypertext Preprocessor递归缩写)中文名字是:“超文本预处理器”,是一种广泛使用的通用开源脚本语百言,适合于Web网站开发,它可以嵌入HTML中。编程范型是面向对象、命令式编程的,

public function unzip_file($file, $dir){ // 实例化对象 $zip = new ZipArchive() ; //打开zip文档,如果打开失败返回提示信息 if ($zip->open($file) !== TRUE) { die ("Could not open archive"); } //将压缩文件解压到指定的目录下 $zip->extractTo($dir); //关闭zip文档 $zip->close(); }

获取解压文件目录

public function loopFun($dir) { $handle = opendir($dir."."); //定义用于存储文件名的数组 $array_file = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $array_file[] = $dir.'/'.$file; //输出文件名 } } closedir($handle); return $array_file; //print_r($array_file); }

大家可以在本地测试下,感谢大家的学习和对真格学网的支持。

1.第一步、找到php.ini文件2.第二部、用记事本打开3.第三步、使用ctrl键+F键搜索;extension=php_zip.dll4.第四步、去除extension前面的分号;如extension=php_zip.dll5.第五步、保存重启Apache或其他服务器内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • python处理数据,存进hive表的方法
  • python导出hive数据表的schema实例代码
  • sql server编写archive通用模板脚本实现自动分批删除数据
  • mysql 5.7.18 archive压缩版安装教程
  • mysql 5.7 zip archive版本安装教程
  • 使用shell脚本执行hive、sqoop命令的方法
  • shell中循环调用hive sql 脚本的方法
  • hive-shell批量命令执行脚本的实现方法
  • 如何在python中写hive脚本
  • php 文本文件的读取效率
  • 国外十大最流行的php框架排名
  • php工程师vim配置分享
  • php+redis实现的购物车单例类示例
  • 完美解决phpexcel导出到xls文件出现乱码的问题
  • php事务回滚简单实现方法示例
  • php获取google机器人访问足迹的方法
  • php 获取当前访问的url文件名的方法小结
  • 关于php curl获取301或302转向的网址问题的解决方法
  • php变量作用域(全局变量&局部变量)&global&static关键字用法实
  • 怎么开启 php ziparchive
  • 怎么判断ziparchive php扩展是否打开
  • php ZipArchive 警告问题 着急啊.
  • 力求PHP高手,在Linux下如何使用 ZipArchive
  • php ZipArchive 能否在指定目录生成压缩包
  • 装个N卡驱动,出现non7 zip archive怎么回事?
  • 安装驱动时出现Non 7-Zip archive
  • 装个N卡驱动,出现non7 zip archive怎么回事
  • PHP是什么
  • php是干什么用的??
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php技巧python处理数据,存进hive表的方法python导出hive数据表的schema实例代码sql server编写archive通用模板脚本实现自动分批删除数据mysql 5.7.18 archive压缩版安装教程mysql 5.7 zip archive版本安装教程使用shell脚本执行hive、sqoop命令的方法shell中循环调用hive sql 脚本的方法hive-shell批量命令执行脚本的实现方法如何在python中写hive脚本php 文本文件的读取效率国外十大最流行的php框架排名php工程师vim配置分享php+redis实现的购物车单例类示例完美解决phpexcel导出到xls文件出现乱码的问题php事务回滚简单实现方法示例php获取google机器人访问足迹的方法php 获取当前访问的url文件名的方法小结关于php curl获取301或302转向的网址问题的解决方法php变量作用域(全局变量&局部变量)&global&static关键字用法实php中json_decode()和json_encodphp 数组和字符串互相转换实现方php中使用curl实现get和post请求php中iconv函数使用方法php日期转时间戳,指定日期转换成php 页面跳转到另一个页面的多种php中文处理 中文字符串截取(mb_php下intval()和(int)转换使用与利用phpexcel实现excel数据的导入phpmyadmin 配置文件详解(配置)php数组相关函数汇总解析dedecms空间迁移步骤详解shopex主机报错误请求解决方案(no such fphp字符比较函数similar_text、strnatcmpphp简单静态页生成过程php自定义apk安装包实例php生成随机密码的几种方法php发送html格式文本邮件的方法php 远程关机实现代码一个简单php扩展介绍与开发教程
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved