Я хочу сжать файл с помощью 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, но не на хостинге. Я потратил на это много времени и теперь понятия не имею.