亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現圖片批量打包下載功能

2024-09-04 11:44:41
字體:
來源:轉載
供稿:網友

上次遇到一個需要打包下載批量圖片的問題,找了一下發現這個好方法,記錄一下。

首先新建一個zipfile打包類:

  1. <?php 
  2. classzipfile { 
  3.   var$datasec=array(); 
  4.   var$ctrl_dir=array(); 
  5.   var$eof_ctrl_dir="/x50/x4b/x05/x06/x00/x00/x00/x00"
  6.   var$old_offset= 0; 
  7.    //Vevb.com 
  8.   functionunix2_dostime($unixtime= 0){ 
  9.     $timearray= ($unixtime== 0) ?getdate() :getdate($unixtime);    
  10.     if($timearray['year'] < 1980){ 
  11.       $timearray['year'] = 1980; 
  12.       $timearray['mon'] = 1; 
  13.       $timearray['mday'] = 1; 
  14.       $timearray['hours'] = 0; 
  15.       $timearray['minutes'] = 0; 
  16.       $timearray['seconds'] = 0; 
  17.     } 
  18.     return(($timearray['year']  - 1980) << 25) | ($timearray['mon'] << 21) |  ($timearray['mday'] << 16) | ($timearray['hours'] << 11) |  ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); 
  19.   } 
  20.   functionadd_file($data,$name,$time= 0){ 
  21.     $name=str_replace('//','/',$name); 
  22.       
  23.     $dtime=dechex($this->unix2_dostime($time)); 
  24.     $hexdtime='/x'.$dtime[6] .$dtime[7] .'/x'.$dtime[4] .$dtime[5] .'/x'.$dtime[2] .$dtime[3] .'/x'.$dtime[0] .$dtime[1]; 
  25.     eval('$hexdtime = "'.$hexdtime.'";'); 
  26.       
  27.     $fr="/x50/x4b/x03/x04"
  28.     $fr.="/x14/x00"
  29.     $fr.="/x00/x00"
  30.     $fr.="/x08/x00"
  31.     $fr.=$hexdtime
  32.       
  33.     $unc_len=strlen($data); 
  34.     $crc= crc32($data); 
  35.     $zdata= gzcompress($data); 
  36.     $zdata=<a href="/tags.php/substr/" target="_blank">substr</a>(substr($zdata, 0,strlen($zdata)- 4), 2); 
  37.     $c_len=strlen($zdata); 
  38.     $fr.= pack('V',$crc); 
  39.     $fr.= pack('V',$c_len); 
  40.     $fr.= pack('V',$unc_len); 
  41.     $fr.= pack('v',strlen($name)); 
  42.     $fr.= pack('v', 0); 
  43.     $fr.=$name
  44.       
  45.     $fr.=$zdata
  46.     $fr.= pack('V',$crc); 
  47.     $fr.= pack('V',$c_len); 
  48.     $fr.= pack('V',$unc_len); 
  49.       
  50.     $this->datasec [] =$fr
  51.       
  52.     $cdrec="/x50/x4b/x01/x02"
  53.     $cdrec.="/x00/x00"
  54.     $cdrec.="/x14/x00"
  55.     $cdrec.="/x00/x00"
  56.     $cdrec.="/x08/x00"
  57.     $cdrec.=$hexdtime
  58.     $cdrec.= pack('V',$crc); 
  59.     $cdrec.= pack('V',$c_len); 
  60.     $cdrec.= pack('V',$unc_len); 
  61.     $cdrec.= pack('v',strlen($name)); 
  62.     $cdrec.= pack('v', 0); 
  63.     $cdrec.= pack('v', 0); 
  64.     $cdrec.= pack('v', 0); 
  65.     $cdrec.= pack('v', 0); 
  66.     $cdrec.= pack('V', 32); 
  67.       
  68.     $cdrec.= pack('V',$this->old_offset); 
  69.     $this->old_offset +=strlen($fr); 
  70.       
  71.     $cdrec.=$name
  72.       
  73.     $this->ctrl_dir[] =$cdrec
  74.   } 
  75.   functionadd_path($path,$l= 0){ 
  76.     $d= @<a href="/tags.php/opendir/" target="_blank">opendir</a>($path); 
  77.     $l=$l> 0 ?$l:strlen($path) + 1; 
  78.     while($v= @readdir($d)){ 
  79.       if($v=='.'||$v=='..'){ 
  80.         continue
  81.       } 
  82.       $v=$path.'/'.$v
  83.       if(is_dir($v)){ 
  84.         $this->add_path($v,$l); 
  85.       }else
  86.         $this->add_file(file_get_contents($v),substr($v,$l)); 
  87.       } 
  88.     } 
  89.   } 
  90.   functionfile(){ 
  91.     $data= implode('',$this->datasec); 
  92.     $ctrldir= implode('',$this->ctrl_dir); 
  93.     return$data.$ctrldir.$this->eof_ctrl_dir  . pack('v', sizeof($this->ctrl_dir)) . pack('v',  sizeof($this->ctrl_dir)) . pack('V',strlen($ctrldir)) .  pack('V',strlen($data)) ."/x00/x00"
  94.   } 
  95.     
  96.   functionadd_files($files){ 
  97.     <a href="/tags.php/foreach/" target="_blank">foreach</a>($filesas$file){ 
  98.       if(is_file($file)){ 
  99.         $data= implode("", file($file)); 
  100.         $this->add_file($data,$file); 
  101.       } 
  102.     } 
  103.   } 
  104.   functionoutput($file){ 
  105.     $fp=<a href="/tags.php/fopen/" target="_blank">fopen</a>($file,"w"); 
  106.     fwrite($fp,$this->file ()); 
  107.     fclose($fp); 
  108.   } 
  109.   
  110. //下面是實例操作過程: 
  111. $dfile= tempnam('/tmp','tmp');//產生一個臨時文件,用于緩存下載文件 
  112. $zip=newzipfile(); 
  113. //---------------------- 
  114. $filename='image.zip'//下載的默認文件名 
  115.   
  116. //以下是需要下載的圖片數組信息,將需要下載的圖片信息轉化為類似即可 
  117. $image=array
  118.   array('image_src'=>'pic1.jpg','image_name'=>'圖片1.jpg'), 
  119.   array('image_src'=>'pic2.jpg','image_name'=>'pic/圖片2.jpg'), 
  120. ); 
  121.   
  122. foreach($imageas$v){ 
  123.   $zip->add_file(file_get_contents($v['image_src']),$v['image_name']); 
  124.   // 添加打包的圖片,第一個參數是圖片內容,第二個參數是壓縮包里面的顯示的名稱, 可包含路徑 
  125.   // 或是想打包整個目錄 用 $zip->add_path($image_path); 
  126. //---------------------- 
  127. $zip->output($dfile); 
  128.   
  129. // 下載文件 
  130. ob_clean(); 
  131. header('Pragma: public'); 
  132. header('Last-Modified:'.gmdate('D, d M Y H:i:s') .'GMT'); 
  133. header('Cache-Control:no-store, no-cache, must-revalidate'); 
  134. header('Cache-Control:pre-check=0, post-check=0, max-age=0'); 
  135. header('Content-Transfer-Encoding:binary'); 
  136. header('Content-Encoding:none'); 
  137. header('Content-type:multipart/form-data'); 
  138. header('Content-Disposition:attachment; filename="'.$filename.'"');//設置下載的默認文件名 
  139. header('Content-length:'.filesize($dfile)); 
  140. $fp=fopen($dfile,'r'); 
  141. while(connection_status() == 0 &&$buf= @fread($fp, 8192)){ 
  142.   echo$buf
  143. fclose($fp); 
  144. @unlink($dfile); 
  145. @flush(); 
  146. @ob_flush(); 
  147. exit(); 
  148. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧洲中文字幕国产精品| 一区二区三区四区在线观看视频| 国产午夜精品视频免费不卡69堂| 久久青草精品视频免费观看| 欧美中文字幕在线| 精品视频—区二区三区免费| 国产日韩欧美成人| 欧美日韩亚洲一区二区| 国产午夜精品视频| 日韩色av导航| 久久久之久亚州精品露出| 欧美激情一级二级| 综合国产在线观看| 国产欧美一区二区三区久久| 精品国产电影一区| 久久久久久久久久久免费精品| 欧美最顶级丰满的aⅴ艳星| 日韩av中文字幕在线播放| 久久精品视频播放| 97婷婷涩涩精品一区| 色综合男人天堂| 久久精品国产免费观看| 欧美激情伊人电影| 日本三级久久久| 91精品国产免费久久久久久| 欧美亚洲国产视频小说| 亚洲激情中文字幕| 中文字幕视频一区二区在线有码| 爽爽爽爽爽爽爽成人免费观看| 日韩视频在线一区| 欧美国产精品人人做人人爱| 欧美精品久久一区二区| 欧美老女人性生活| 91高清视频在线免费观看| 国产午夜精品一区二区三区| 亚洲影院污污.| 国内成人精品一区| 欧洲成人免费视频| 精品成人av一区| 成人国产亚洲精品a区天堂华泰| 综合国产在线视频| 国产精品com| 国产视频久久久久久久| 欧美福利视频在线| 国产精品igao视频| 午夜精品视频网站| 精品久久香蕉国产线看观看亚洲| 久久91亚洲精品中文字幕| 中文字幕九色91在线| 精品欧美激情精品一区| 精品视频在线导航| 亚洲性69xxxbbb| 日本一本a高清免费不卡| 久久精品2019中文字幕| 91欧美视频网站| 日韩一区二区av| 欧美日韩成人网| 欧美黑人性生活视频| 视频一区视频二区国产精品| 欧美午夜片欧美片在线观看| 日韩av在线网页| 疯狂做受xxxx高潮欧美日本| 爱福利视频一区| 久久成人精品一区二区三区| 亚洲色图在线观看| 亚洲一区二区日本| 国产精品av在线播放| 欧美成人免费在线视频| 久久久久国产精品www| 国产精品爱久久久久久久| 久久69精品久久久久久国产越南| 北条麻妃99精品青青久久| 免费av在线一区| 欧美电影免费观看高清完整| 精品亚洲一区二区三区在线播放| 在线观看亚洲视频| 欧美国产第二页| 国产欧美日韩中文字幕| 亚洲国产私拍精品国模在线观看| 欧美激情视频一区二区三区不卡| 日本午夜人人精品| 国产成人在线一区| 久久久亚洲国产天美传媒修理工| 亚洲免费高清视频| 国产精品va在线播放我和闺蜜| 欧美放荡办公室videos4k| 亚洲欧美成人一区二区在线电影| 色偷偷偷综合中文字幕;dd| 久久久久久69| 亚洲综合在线做性| 日韩影视在线观看| 69av成年福利视频| 欧美大荫蒂xxx| 色狠狠av一区二区三区香蕉蜜桃| 日韩网站免费观看高清| 伊人久久久久久久久久久久久| 亚洲美女免费精品视频在线观看| 亚洲片国产一区一级在线观看| 538国产精品一区二区在线| 国产成人avxxxxx在线看| 精品久久久久久久久久久久久久| 97色在线播放视频| 亚洲欧美变态国产另类| 日韩极品精品视频免费观看| 欧美插天视频在线播放| 国产精品福利无圣光在线一区| 欧美夫妻性生活xx| 国产九九精品视频| 欧美一级高清免费播放| 色在人av网站天堂精品| 日本精品性网站在线观看| 国产成人精品一区二区三区| 欧美孕妇孕交黑巨大网站| 亚洲一区二区三区xxx视频| 国产日韩在线一区| 国产高清在线不卡| 久久久久久久久久久av| 2019中文字幕全在线观看| 亚洲国产精品久久久| 日韩在线观看电影| 亚洲aⅴ日韩av电影在线观看| 91av成人在线| 亚洲免费一在线| 久久999免费视频| 日韩在线一区二区三区免费视频| 免费不卡欧美自拍视频| 一区二区在线免费视频| 日韩中文字幕免费| 日产精品99久久久久久| 精品国产乱码久久久久久虫虫漫画| 成人免费高清完整版在线观看| 国产精品视频久久久| 久久免费视频在线| 777精品视频| 清纯唯美日韩制服另类| 欧美日韩国产中文精品字幕自在自线| 日本久久久久久久久| 色妞欧美日韩在线| 国语对白做受69| 久久久精品视频成人| 最新日韩中文字幕| 国模精品视频一区二区| 成人综合国产精品| 永久免费看mv网站入口亚洲| 欧美日韩不卡合集视频| 91夜夜揉人人捏人人添红杏| 亚洲欧洲美洲在线综合| 久久精品99久久久香蕉| 日韩成人在线视频观看| 国产精品美女www爽爽爽视频| 欧美成人激情在线| 在线电影av不卡网址| 亚洲欧美日韩天堂| 久久国产天堂福利天堂| 欧美一乱一性一交一视频| 亚洲精品99久久久久中文字幕| 成人做爰www免费看视频网站| 4438全国成人免费| 91精品视频免费看| 日韩黄色在线免费观看| 不卡伊人av在线播放| 欧美性在线视频| 久久黄色av网站| 欧美成人精品影院|