- 將檔案打包成zip格式
- 下載檔案的功能
要點解析:
- 這裡我採用的是php內建的ZipArchive類
a) 我們只需要new一個ZipArchive對象,然後使用open方法建立一個zip檔案,接著使用addFile方法,將要打包的檔案寫入剛剛建立的zip檔案中,最好還得記得關閉該對象。
b) 注意點:使用open方法的時候,第二個參數$flags是可選的,$flags用來指定對開啟的zip檔案的處理方式,共有四種情況
i. ZIPARCHIVE::OVERWRITE 總是建立一個新的檔案,如果指定的zip檔案存在,則會覆蓋掉
ii. ZIPARCHIVE::CREATE 如果指定的zip檔案不存在,則建立一個
iii. ZIPARCHIVE::EXCL 如果指定的zip檔案存在,則會報錯
iv. ZIPARCHIVE::CHECKCON
$nid = intval($this->_request->getParam('nid'));$filelist = $this->model->getOverenter($nid);foreach ($filelist as $f) { $row['file'] = ROOT.'/public/upload/logo/'.$f['ne_file'];$row['name'] = $f['es_name'];$ext = explode('.',$f['ne_file']);$row['ext'] = $ext[1];$fileNameArr[]=$row;}$name = date('YmdHis').'.zip';$filename = ROOT."/public/upload/".$name; // 最終產生的檔案名稱(含路徑)$zip = new ZipArchive ();if (!file_exists($filename)) { $zip->open($filename, ZipArchive::CREATE);//建立一個空的zip檔案for ($i = 0; $i < count($fileNameArr); $i++) { $zip->addFile($fileNameArr[$i]['file'], iconv( 'UTF-8','GB2312', $fileNameArr[$i]['name']).'.'.$fileNameArr[$i]['ext']);} $zip->close();//開啟檔案if(file_exists($filename)){ $file = fopen($filename,"r");Header("Content-type: application/octet-stream");Header("Accept-Ranges: bytes");Header("Accept-Length: ".filesize($filename));Header("Content-Disposition: attachment; filename=".$name);echo fread($file, filesize($filename));$buffer=1024;while (!feof($file)) { $file_data=fread($file,$buffer);echo $file_data;} fclose($file);}else { echo "";}}unlink($filename);exit();
以上就介紹了jar檔案打包 php zip打包下載檔案,包括了jar檔案打包方面的內容,希望對PHP教程有興趣的朋友有所協助。