Проблема с PHP ZipArchive

я впервые использую PHP для создания архивов ZIP. Однако я не получаю никаких zip-файлов, даже если не выводится ошибка. Я сделал echo $zip->close, и он дал 1.

Кто-нибудь может мне помочь?

/* Create zip folder */
$zip = new ZipArchive();
$zipCreate = $zip->open("newarchive.zip", ZipArchive::CREATE);

if($zipCreate !== TRUE) {
    die("Zip folder creation failed");
}

$zip->addFile("test.txt", "test.txt");
$zip->addFile("helllo.txt", "helllo.txt");
$zip->close();

person user2604185    schedule 23.11.2014    source источник
comment
Вы проверили, находятся ли test.txt и helllo.txt в одной папке или даже существуют?   -  person iCezz    schedule 23.11.2014
comment
Да, они находятся в той же папке, которая является дочерней папкой папки, содержащей файл на php.   -  person user2604185    schedule 23.11.2014
comment
Думаю, я нашел проблему. Я не поставил в первом параметре полный путь от исходной папки.   -  person user2604185    schedule 23.11.2014
comment
Не думаю, что это решит вашу проблему, посмотрите мой ответ ниже.   -  person iCezz    schedule 23.11.2014


Ответы (1)


Может, попробуйте вместо этого:

<?php

/* Create zip folder */
$zip = new ZipArchive();
$zipCreate = $zip->open("newarchive.zip", ZipArchive::CREATE);

if($zipCreate !== TRUE) {
    die("Zip folder creation failed");
}

$directory = getcwd() . '/';

$files = array('test.txt', 'helllo.txt');

foreach($files as $file) {
    $zip->addFile($directory . $file, basename($file));
}

$zip->close();

В первом аргументе метода addFile() укажите полный путь к имени вашего файла, а во втором укажите каталог / расположение вашего файла в архиве, и это должно помочь.

person Duvdevan    schedule 23.11.2014
comment
Мне особенно нравится идея массива. - person user2604185; 23.11.2014
comment
Это лучший ответ, чем мой. Молодец. - person iCezz; 23.11.2014