首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP在線打包下載功能:ZipArchive實現多文件壓縮打包與中文文件名支持

     編輯:PHP 綜合知識

環境準備

  • 開啟 php_zip.dll(Windows)或 zlib(Linux)擴展
  • 修正 php.ini 中 extension_dir 路徑,重啟 Web 服務

PHP配置圖

核心代碼

$filename = date("YmdHis");
$zip = new ZipArchive();
$zip->open($filename . ".zip", ZipArchive::OVERWRITE);

foreach ($data as $val) {
    $attachfile = "E:\\bysj\\bysj" . $val['fileaddr'] . $val['filename'];
    $attachfile = iconv("UTF-8", "GBK", $attachfile); // 關鍵:中文路徑轉編碼
    $zip->addFile($attachfile, basename($attachfile));
}
$zip->close();

// 輸出下載
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=" . basename($filename) . ".zip");
header("Content-Length: " . filesize($filename . ".zip"));
readfile($filename . ".zip");

關鍵點總結

  1. iconv("UTF-8","GBK",...) 解決中文文件名壓縮亂碼/失敗
  2. 設置完整 HTTP Header 確保瀏覽器正確下載
  3. 臨時 zip 文件下載後建議定時清理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved