2011-06-28 98 views
2
<?php 



$direc = base64_decode($_GET['path']); 



    $zip = new ZipArchive(); 

    if ($zip->open($archive_file_name, ZIPARCHIVE::CREATE) !== TRUE) { 
     exit("cannot open <$archive_file_name>\n"); 
    } 
    //add each files of $file_name array to archive 
    foreach ($file_names as $files) { 
     $zip->addFile($file_path . $files, $files); 
    } 
    $zip->close(); 



    header('Content-Type: application/octet-stream'); 
    header("Content-Disposition: attachment; filename=" . $archive_file_name); 
    header('Cache-control: private, must-revalidate'); 
    header('Content-Transfer-Encoding: binary'); 
    readfile("$archive_file_name"); 
    exit; 
} 

if (isset($_POST['file'])) { 
    $file_names = $_POST['file']; 
    $archive_file_name = 'zipped.zip'; 
    $file_path = $direc; 
    echo $file_path; 


//Run Function above 
    zipFilesAndDownload($file_names, $archive_file_name, $file_path); 


    if (file_exists($archive_file_name)) { 
     unlink($archive_file_name); 
    } 

?> 

我發現上面的代碼和嘗試,zip文件創建,但聲明unlink($zipname);不起作用 我沒有對任何權限問題郵編多個文件比斷開鏈接的文件

是這樣文件strill寫保護? 如何解決這個問題?

感謝朋友

+0

你在哪裏設置'$ zipname'和'$ zipfilename'? – zsalzbank

+0

對不起錯誤的代碼複製..我糾正了它:D ..問題是'unlink'語句下面的頭部語句? – yukou

回答

2

上面的函數應該調用return,而不是退出。退出會終止腳本的執行,所以之後沒有任何操作會被調用。它可能甚至沒有進入file_exists部分。