2016-08-23 73 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); 
?>