這篇文章主要介紹了PHP線上打包下載功能實現方法,結合執行個體形式分析了php打包下載的實現流程與相關注意事項,需要的朋友可以參考下
昨天晚上,為了弄這個打包下載的事,弄的事焦頭爛額。有幾個問題,第一個是開始PHP_ZIP.dll的問題。話說只要把PHP.INI裡面的extend_dir裡面的前的”;”號去掉。再重啟IIS或者apache就可以了。
問題是老是找不到系統配置的真正的PHP.INI。
PHP配置圖
第二個是告訴你配置文檔的路徑,按著找就可以了。我當時腦袋秀逗了,浪費了很多時間。
這個開啟PHP_ZIP擴充庫以後,就可以開始打包下載了。
$filename= date("YmdHis");$zip = new ZipArchive();//使用本類,linux需開啟zlib,windows需取消php_zip.dll前的注釋$zip->open($filename.".zip", ZipArchive::OVERWRITE); //$data 就是從資料庫裡面讀出的數字foreach( $data as $val){ $attachfile = "E:\bysj\bysj".$val['fileaddr'].$val['filename']; //寫硬路徑,但建議用PHP環境變數 $attachfile=iconv("UTF-8","GBK",$attachfile); //轉碼,是打包中文文檔的關鍵 $zip->addFile( $attachfile , basename($attachfile)); //壓棧}$zip->close();//關閉header("Content-type:text/html;charset=utf-8");//設定頁面編號header("Cache-Control: public");header("Content-Description: File Transfer");header('Content-disposition: attachment; filename='.basename($filename)); //檔案名稱header("Content-Type: application/zip"); //zip格式的header("Content-Transfer-Encoding: binary"); //告訴瀏覽器,這是二進位檔案header('Content-Length: '. filesize($filename)); //告訴瀏覽器,檔案大小@readfile($filename.".zip");
上面的代碼基本就可以實現文檔打包下載了,也解決了中文文檔無法打包下載的問題。
總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。