thinkphp5 打包下載文件介紹


打包下載,首先你要確保你打包這些文件都在同一個文件夾里面。直接上代碼

頁面代碼:就一個a標簽

<a  target="_blank" href="tasks/download_files" > 批量下載任務文件</a>

控制器:

public function download_files(){
    //要打包的文件
  $files = ['uploads/task/task1.xls','uploads/task/task2.xls','uploads/task/task2.xls'];
  $zip = new \ZipArchive;
  //壓縮文件名
  $filename = 'uploads/task/download.zip';
  //新建zip壓縮包
  $zip->open($filename,\ZIPARCHIVE::OVERWRITE | \ZIPARCHIVE::CREATE);
  //把文件一個一個加進去壓縮
  foreach ($files as $key => $value) {
	$zip->addFile($value,basename($value)); 
  }
  // 打包zip
  $zip->close();
   
  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);
}

 這里要注意一下 文件地址,都是 相對路徑,不能寫絕對路徑,也就是 uploads 前 不能加 /


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM