在没有任何子文件夹的特定路径中创建zip文件

时间:2016-11-14 08:05:00

标签: php zip

我需要在特定的文件路径中创建一个Zip文件,而不在其中创建任何子文件夹, 这是我的代码:

$files = array('article/includes/pdfFiles/file1.txt','article/includes/pdfFiles/file2.txt');
$zipname = 'article/includes/pdfFiles/file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
    $zip->addFile($file);
}
$zip->close();

我需要在此文件夹中的'assets / uploads / pdfFiles'路径中创建file.zip,它已被创建,但问题出在zip文件中这些文件夹退出:assets / uploads / pdfFiles
如何在没有这些文件夹的情况下创建zip文件?

1 个答案:

答案 0 :(得分:1)

上面的代码不起作用,因为你没有显示 $ fileNames 的内容,但我假设它是这样的:

array('assets/uploads/pdfFiles/file1.txt','assets/uploads/pdfFiles/file2.txt',...)

当您添加到zip中时,请执行以下操作:

foreach ($fileNames as $fullpath) {
    // pull just the file name from the path
    $filename = substr($fullpath, strrpos($fullpath, '/')+1);
    $zip->addFile($fullpath,$filename);
}
相关问题