ZipArchive не создается - addFile () возвращает false - PullRequest
0 голосов
/ 05 мая 2019

Я хочу сжать файл с помощью PHP. Следующий код отлично работает с XAMPP на моей локальной машине, но не на хостинге.

Сначала я подумал, что это проблема с правами доступа к файлу, но я изменил его на 777, и ничего не изменилось.

Во-вторых, я где-то читал в Интернете, что расширение zip может не загружаться, но funtcion extension_loaded ('zip') возвращает true, и ошибок нет.

В-третьих, я проверил результат функций zipArchive - в моем случае $ zip-> open () возвращает true, $ zip-> addFile () возвращает false, а $ zip-> close () возвращает true. Но zip-файл не создан. Это похоже на проблему с разрешениями, но я установил 777 для файлов .php и .txt, которые я хочу добавить в zip-файл.

версия PHP на моей локальной машине: 7.3.4 Версия PHP на моем хостинг-провайдере: 7.3.1

$zip = new ZipArchive();

$DelFilePath="raport_X_.zip";
if(file_exists($_SERVER['DOCUMENT_ROOT']."/www/Rekrutacja/raports/".$DelFilePath)) {
        unlink ($_SERVER['DOCUMENT_ROOT']."/www/Rekrutacja/raports/".$DelFilePath); 
}       

$openResult = $zip->open($_SERVER['DOCUMENT_ROOT']."/www/Rekrutacja/raports/".$DelFilePath, ZIPARCHIVE::CREATE);


$file='BranżowaSzkołaIstopniamechanikpojazdówsamochodowychGIMNAZJUM_RAPORT.txt';

$addResult = $zip->addFile($_SERVER['DOCUMENT_ROOT']."/www/Rekrutacja/raports/".$file,$file);
$closeResult = $zip->close(); 

$path = 'raports/raport_X_.zip';  
$filename = "raport_X_.zip";  
if(file_exists($path)){
    header("Content-Type:application/zip");
    header("Content-Disposition: attachment; filename=".$filename);
    header("Cache-control: private");
    header('X-Sendfile: '.$path);
    readfile($path);
    exit;
}
echo '<br>';
if(extension_loaded('zip')){
    echo 'Zip extension is loaded <br>';
    }
echo 'Open result:';
var_dump($openResult);
echo 'Add error:';
var_dump($addResult);
 echo 'Close error:';
 var_dump($closeResult);
 phpinfo();
 ?>

Я просто хочу получить zip с файлом .txt. Я не получаю ошибку, но zip-файл не создан. Работает на XAMPP, но не на хостинге. Я потратил на это много времени и теперь понятия не имею.

...