,我有以下的zip下載功能:如何在不下載整個目錄路徑的情況下下載zip文件? (PHP)
$file='myStuff.zip';
function downloadZip($file){
$file=$_SERVER["DOCUMENT_ROOT"].'/uploads/'.$file;
if (headers_sent()) {
echo 'HTTP header already sent';
}
else {
if (!is_file($file)) {
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');
echo 'File not found';
} else if (!is_readable($file)) {
header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden');
echo 'File not readable';
} else {
header($_SERVER['SERVER_PROTOCOL'].' 200 OK');
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: Binary");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=\"".basename($file)."\"");
readfile($file);
exit;
}
}
}
問題是,當我調用這個函數,我結束了下載不只是myStuff.zip,但所有的文件夾的完整目錄路徑。我在Mac上使用XAMPP所以這意味着我得到如下:
/applications/xampp/htdocs/uploads/myStuff.zip
這意味着我得到一個文件夾,名爲應用程序與所有子文件夾,然後裏面所有的人,我得到myStuff.zip。
如何我剛剛下載myStuff.zip
沒有它的目錄?
我猜它是與['基名()'](http://php.net/manual/en/function.basename.php)。 –
擺脫基本名稱的'()'只是重新添加路徑信息,以下載ZIP –
的名字你爲什麼不只是保留從一開始'$ file'? –