2016-08-23 72 views
0

我創建了一個zip文件用PHP與此代碼:文件拉鍊內不帶路徑

<?php 
$file1 = '/home/##ACCOUNT##/public_html/##SITE##/images/uploadfiles/backup/file1.csv'; 
$file2 = '/home/##ACCOUNT##/public_html/##SITE##/images/uploadfiles/backup/file2.csv'; 

// CREATE THE ZIP 
$files = array($file1, $file2); 
$zipname = '/home/##ACCOUNT##/public_html/##SITE##/images/uploadfiles/backup/backup.zip'; 
$zip = new ZipArchive; 
$zip->open($zipname, ZipArchive::CREATE); 
foreach ($files as $file) { 
$zip->addFile($file); 
} 
$zip->close(); 
?> 

在創建ZIP我得到2個文件,我想它,但它也包含這些文件的樹/路徑,打開你必須在這些文件夾內導航以獲得文件的壓縮文件是否有一個只有壓縮文件中的2個文件file1.csv & file2.csv沒有文件夾?

我發現我在另一篇文章 php creating zips without path to files inside the zip

+0

無論如何,請接受和upvote正確的答案在這裏你的問題。 – baldrs

回答

0

想你可以使用ZipArchive::renameName方法被添加到更改文件名或使用ZipArchive::addFromString的anwser。在第二種情況下,您需要記住您首先需要將該文件讀入內存,因此只能在考慮到可用內存的情況下使用它。

您也可以使用第二個參數ZipArchive::addFile在其他答案建議。

foreach ($files as $file) { 
    $localName = basename($file); 

    $zip->addFile($file, $localname); 
} 
0

作爲解決方法使用$的localName(第二個參數)來定義和控制文件/目錄結構的拉鍊例如內部。

<?php 
    $zip->addFile($file, $localname_relative_path); 
?>