php 打包图片
2015-05-28 17:17
429 查看
1.为一组图片打包
这样就完成了一组图片的打包操作
//yii2 先引用 use ZipArchive; public function actionZip(){ $model=new Subjectzip; $arr= Subjectitem::find()->all(); // $arr是一组图片 $url=array(); $filename=array(); $yuan=array(); $local_path=array(); $zip = new \ZipArchive(); $filename_zip = "./zips/" . time().".zip"; //一个包的名字 if ($zip->open($filename_zip, ZIPARCHIVE::CREATE) !== TRUE) { exit("cannot open <$filename_zip>\n"); } for($i=0;$i<count($arr);$i++){ $url[]=$arr[$i]['pic'];//图片路径 $yuan[] =explode("/", $url[$i]); $filename[]=end($yuan[$i]);//去图片名称 $local_path[] = $this->getImg($url[$i], $filename[$i]);//本地路径 $zip->addFile($local_path[$i], $filename[$i]);//图片添加到包中 } //kb 压缩包的大小 $model->zip_size= @ceil(filesize($zip->filename)/1024); // 闭包 $zip->close(); } //getImg方法 public function actionGetImg($url = "", $filename = "",$extend_path="") { //去除URL连接上面可能的引号 //$url = preg_replace( '/(?:^['"]+|['"/]+$)/', '', $url ); $hander = curl_init(); //获取今天的日期,然后进行拼接,创建路径,保存图片 $data = date("Y", time()) . '/' . date("m", time()) . '/' . date("d", time()) . '/'; if($extend_path !=""){ $extend_path.="/"; } $save_path = "./upload/user/".$data.$extend_path; //创建相应了、目录 if (!file_exists($save_path)) { $this->mkdirs($save_path); } $fp = fopen($save_path.$filename, 'wb'); curl_setopt($hander, CURLOPT_URL, $url); curl_setopt($hander, CURLOPT_FILE, $fp); curl_setopt($hander, CURLOPT_HEADER, 0); curl_setopt($hander, CURLOPT_FOLLOWLOCATION, 1); //curl_setopt($hander,CURLOPT_RETURNTRANSFER,false); //以数据流的方式返回数据,当为false是直接显示出来 curl_setopt($hander, CURLOPT_TIMEOUT, 60); curl_exec($hander); curl_close($hander); fclose($fp); return $save_path.$filename; } //mkdir创建文件夹 /** * 递归创建目录 * @param type $path * @param type $mode */ private function actionMkdirs($path, $mode = 0777) { //creates directory tree recursively $dirs = explode('/', $path); $pos = strrpos($path, "."); if ($pos === false) { // note: three equal signs // not found, means path ends in a dir not file $subamount = 0; } else { $subamount = 1; } for ($c = 0; $c < count($dirs) - $subamount; $c++) { $thispath = ""; for ($cc = 0; $cc <= $c; $cc++) { $thispath.=$dirs[$cc] . '/'; } if (!file_exists($thispath)) { //print "$thispath<br>"; mkdir($thispath, $mode); } } }
这样就完成了一组图片的打包操作
相关文章推荐
- php 打包zip图片下载
- PHP实现图片批量打包下载功能
- php中怎样实现图片的打包下载
- PHP中多张图片上传并校验的实现
- 高手教你PHP上传多张图片
- php验证码图片里的点点与线线,和数据库部分封装
- Java程序打包后图片不显示:Java的insertIcon函数打包后,路径问题
- php保存任意网络图片到服务器的方法
- php上传图片到mysql并显示
- 图片水印类[PHP]
- VS2010程序打包操作(结合图片详细讲解)
- php上传图片得到路径给表单字段赋值的通用方法
- 图片资源加载路径分析以及netbeans打包java程序,并包含图片资源
- PHP抓取图片的具体实现方法
- php图片宽高限制
- PHP 图片上传 (AIP图片上传接口,视频上传同理,只需改动jpg,png等为mp4,flv等)
- PHP后台接收Base64图片的时候
- java 批量下载图片,批量打包文件并下载