2016-07-01 83 views
-1

我試圖使用PHP創建一些zip文件。如何使用PHP ZipArchive從下載的文件名中排除文件路徑

$zipname = 'path/to/my/dir/' . uniqid('MyZip', true) . '.zip'; 
     $zip = new ZipArchive; 
     $zip->open($zipname, ZipArchive::CREATE); 
     foreach ($files as $file) { 
     $dl_file = file_get_contents($file); 
     $zip->addFromString(basename($file),$dl_file); 
     } 
     $zip->close(); 
     header('Content-Type: application/zip'); 
     header('Content-disposition: attachment; filename=' . $zipname); 
     header('Content-Length: ' . filesize($zipname)); 
     readfile($zipname); 
     unlink($zipname); 

它創建了一個檔案只是命名東西的程度的正確位置罰款:MyZip124153.zip

但是,文件瀏覽器下載名爲path-to-my-dirMyZip124153.zip。

我不知道如何防止它做到這一點。我寧願不要將這些文件系統信息嵌入到這些文件名中。

謝謝!

回答

1

很明顯,它將把路徑放在一個文件名中,因爲你在標題中使用路徑字符串作爲文件名。

更改:

header('Content-disposition: attachment; filename=' . $zipname); 

喜歡的東西:

$new_file_name = 'myzipfile.zip'; 
header('Content-disposition: attachment; filename=' . $new_file_name); 
相關問題