PHP在线压缩文件夹并下载
生活随笔
收集整理的這篇文章主要介紹了
PHP在线压缩文件夹并下载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用環境為php7.3
function createZip($openFile,$zipObj,$sourceAbso,$newRelat = '')
{
while(($file = readdir($openFile)) != false)
{
if($file=="." || $file=="..")
continue;
/*源目錄路徑(絕對路徑)*/
$sourceTemp = $sourceAbso.'/'.$file;
/*目標目錄路徑(相對路徑)*/
$newTemp = $newRelat==''?$file:$newRelat.'/'.$file;
if(is_dir($sourceTemp))
{
//echo '創建'.$newTemp.'文件夾<br/>';
$zipObj->addEmptyDir($newTemp);/*這里注意:php只需傳遞一個文件夾名稱路徑即可*/
createZip(opendir($sourceTemp),$zipObj,$sourceTemp,$newTemp);
}
if(is_file($sourceTemp))
{
//echo '創建'.$newTemp.'文件<br/>';
$zipObj->addFile($sourceTemp,$newTemp);
}
}
}
//創建<span>ZipArchive對象</span>
$exportPath= $_SERVER['DOCUMENT_ROOT'].'/json';
$filename=$exportPath.'.zip';
$zip = new ipArchive();
//參數1:zip保存路徑,參數2:ZIPARCHIVE::CREATE沒有即是創建
if(!$zip->open($filename,IPARCHIVE::CREATE))
{
echo "創建[exportPath.zip]失敗<br/>";return;
}
//echo "創建[$exportPath.zip]成功<br/>";
createZip(opendir($exportPath),$zip,$exportPath);
$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);
總結
以上是生活随笔為你收集整理的PHP在线压缩文件夹并下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10系统激活提示无法连接到你组织的
- 下一篇: 乌合之众是什么意思(解读乌合之众)