没有路径的Zip内的文件

时间:2016-08-23 08:33:59

标签: php zip

我使用以下代码创建一个带有php的zip文件:

<?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个文件,因为我想要它但它还包含这些文件的树/路径,所以打开zip你必须在那些文件夹中导航才能到达文件是否有一个只需要zip文件中的2个文件.csv&amp;没有文件夹的file2.csv?

我在另一篇文章中找到了我想要的anwser php creating zips without path to files inside the zip

2 个答案:

答案 0 :(得分:0)

您可以使用ZipArchive::renameName方法更改要添加的文件的名称,或使用ZipArchive::addFromString。在第二种情况下,您需要记住您首先需要将该文件读入内存,因此只应考虑可用内存。

此外,您可以按照其他答案中的建议使用第二个参数ZipArchive::addFile

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

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

答案 1 :(得分:0)

作为解决方法使用 $ localname (第二个参数)来定义和控制zip中的文件/目录结构,例如。

<?php 
     $zip->addFile($file, $localname_relative_path); 
?>
相关问题