1

I need to create a Zip file in a specific file path without any sub folders created inside it, here is my code :

$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();

I need the file.zip to be created in the path 'assets/uploads/pdfFiles' in this folder, its been created but the problem is inside the zip file these folders exits: assets/uploads/pdfFiles
How can I create the zip file without these folders?

Alessandro Da Rugna
  • 4,571
  • 20
  • 40
  • 64
a4DEVP
  • 351
  • 1
  • 7
  • 20
  • Possible duplicate of [php creating zips without path to files inside the zip](http://stackoverflow.com/questions/3993105/php-creating-zips-without-path-to-files-inside-the-zip) – Alessandro Da Rugna Nov 14 '16 at 08:58

1 Answers1

1

Your code above doesn't work because you don't show the contents of $fileNames but I am assuming it is something like:

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

When you add to the zip do this:

foreach ($fileNames as $fullpath) {
    // pull just the file name from the path
    $filename = substr($fullpath, strrpos($fullpath, '/')+1);
    $zip->addFile($fullpath,$filename);
}
Tim
  • 2,139
  • 13
  • 18