<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
use think\ZipArchive;
class Path extends Controller
{
public function _initialize()
{
}
public function addFileToZip($path, $zip) {
$handler = opendir($path);
while (($filename = readdir($handler)) !== false) {
if ($filename != "." && $filename != "..") {
if (is_dir($path . "/" . $filename)) {
$this->addFileToZip($path . "/" . $filename, $zip);
} else {
$zip->addFile($path . "/" . $filename);
}
}
}
@closedir($path);
}
public function index() {
$zip = new \ZipArchive;
$zipName='dow.zip';
try {
$zip->open($zipName, \ZIPARCHIVE::CREATE);
$this->addFileToZip('app/user', $zip);
$zip->close();
} catch (\Exception $exception) {
return $exception->getMessage();
}
if(!file_exists($zipName)){
exit("无法找到文件");
}
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.basename($zipName));
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($zipName));
@readfile($zipName);
unlink($zipName);
}
}