使用PHP實現打包zip並下載的功能

來源:互聯網
上載者:User
這篇文章主要介紹了PHP實現打包zip並下載功能,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧

具體代碼如下所示:

$file_template = FCPATH.'canddata/cand_picture.zip';//在此之前你的項目目錄中必須建立一個空的zip包(必須存在)$downname = $card.'.zip';//你即將打包的zip檔案名稱$file_name = FCPATH.'canddata/'.$card.'.zip';//把你打包後zip所存放的目錄$result = copy( $file_template, $file_name );//把原來項目目錄存在的zip複製一份新的到另外一個目錄並重新命名(可以在原來的目錄)$zip = new ZipArchive();//建立一個對象if ($zip->open($file_name, ZipArchive::CREATE) === TRUE) { //開啟你複製過後空的zip包  $zip->addEmptyDir($card);//在zip壓縮包中建一個空檔案夾,成功時返回 TRUE, 或者在失敗時返回 FALSE  //下面是我的情境業務處理,可根據自己的情境需要去處理(我的是將所有的圖片打包)  $i = 1;  foreach ($cand_photo as $key3 => $value3) {    $file_ext = explode('.',$value3['cand_face']);//擷取到圖片的尾碼名    $zip->addFromString($card.'/'.$card.'_'.$i.'.'.$file_ext[3] , file_get_contents($value3['cand_face']));//(圖片的重新命名,擷取到圖片的二進位流)    $i++;  }  $zip->close();  $fp=fopen($file_name,"r");   $file_size=filesize($file_name);//擷取檔案的位元組  //下載檔案需要用到的頭   Header("Content-type: application/octet-stream");   Header("Accept-Ranges: bytes");   Header("Accept-Length:".$file_size);  Header("Content-Disposition: attachment; filename=$downname");   $buffer=1024; //設定一次讀取的位元組數,每讀取一次,就輸出資料(即返回給瀏覽器)   $file_count=0; //讀取的總位元組數   //向瀏覽器返回資料 如果下載完成就停止輸出,如果未下載完成就一直在輸出。根據檔案的位元組大小判斷是否下載完成  while(!feof($fp) && $file_count<$file_size){          $file_con=fread($fp,$buffer);          $file_count+=$buffer;          echo $file_con;      }   fclose($fp);   //下載完成後刪除壓縮包,臨時檔案夾   if($file_count >= $file_size) {     unlink($file_name);   }}

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.