2021-11-15補充說明,由於PHP8.0對於new ZipArchive的寫法有改變,以下方法無法於PHP8.0中使用,如需使用PHP8.0開發Xoops模組zip下載功能的請參考這篇工作心得 Xoops做一個php8.0下載檔案自動壓縮成ZIP格式方法 通常下載檔案做個按鈕直接路徑指向檔案就能下載了,但現在瀏覽器越來越聰明,像是PDF,WOED或是圖片類型都會直接在瀏覽器開啟,而不會下載,再加上下載檔案會消耗網站上行頻寬,所以最好的方法就是吧要下載的檔案壓縮成ZIP格式再讓USER下載,減少頻寬消耗,這樣就都沒問題了,php5.2後都支援new ZipArchive函數,所以不用再去改什麼php.ini檔了。 方法如下: PHP-CODE-把以下程式碼放到模組的function.php裡面,於要觸發下載的PHP檔中引入function.php //下載檔案壓縮ZIP格式function function zipArchivefunction($url="",$zipname="",$temp=""){ //$url 檔案原始路徑+檔名 //$zipname 檔案名稱 //$temp 檔案暫存路徑+檔名 /********利用ZipArchive產生壓縮檔************/ $zip = new ZipArchive; $zip->open($temp, ZipArchive::CREATE); //$zip->addFile($dir); //添加檔案 (若有大量檔案可使用迴圈) $new_filename = substr($url, strrpos($url, '/') + 1); //重新定義壓縮檔路徑 $zip->addFile($url, $new_filename); $zip->close(); /********使用header命令php下載zip檔************/ header('Content-Type: application/zip'); //指定類型 header("Content-type: ".filetype(...