2015-04-08 58 views
0

目前我使用此代碼來下載一個zip文件:如何從zip下載中排除文件?

<?php 
    $weborder = $_POST['weborder']; 
    $printlocation = $_POST['print']; 

$file = 'z:\Backup\\'.$printlocation.'\\'.$weborder.'.zip'; 

if (file_exists($file)) { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename='.basename($file)); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    readfile($file); 
    exit; 
} 
else 
{ 
    echo ":("; 
} 
?> 

zip文件包含4個文件。我現在遇到的問題是不應該下載3個文件。我想知道是否有一種簡單的方法來選擇哪些文件不被下載。

+0

一個zip文件是一個文件,所以除非你先解壓文件..那麼你不能 – paddyfields

回答

1

不幸的是,沒有辦法選擇性壓縮下載。 你應該重新包裝你的zip文件夾你想下載的文件。


這裏有一些相關的問題只是,這裏不再重複他們:

你需要做的是提取文件要服務下載。 您可以通過使用「選擇」解壓完成這個...

$zip->extractTo('/some/dir/', ['number_one.file', 'some_other.file']); // or single file in your case 

...然後收拾他們,並與你想要的文件成爲新創建的zip壓縮包。

有關如何執行此操作的更多信息,請參閱上面的相關鏈接。


UPD:我會提到它是不是一個好的做法直接在腳本中使用用戶的輸入。這是潛在的安全漏洞。

+0

你有什麼例子可以幫我實現這個目標嗎? – Quartermain

+0

@Quartermain讓我試試... –