PHP ZipArchive 600

PHP ZipArchive chmod 600 проблема доступа к файлу.

Создается темповый (временный) архив, с правами 600 (-rw-------) из-за чего не может с ним работать.

Вот как выглядит архив: archive_19-05-2020_18-33-51.zip.GIKCH2

Локально все отрабатывается и темповый файл я даже не вижу в процессе работы. При переносе на сервер (linux), появляется проблема с доступом к архиву.

Собственно сам код, тут все стандартно.

$zip = new \ZipArchive();
if ($zip->open('upload/archive_19-05-2020_18-33-51.zip', \ZipArchive::CREATE) !== TRUE) {
    throw new \Exception('Cannot create a zip file');
}
$zip->addFile('upload/file.txt', 'file.txt'); 
$zip->close();

При генерации других файлов, того же csv, файл получает права 644 и с ним можно спокойно работать.

Не могу понять в чем проблема, почему архив создается с ограниченными правами, хотя локально на (windows) все работает без проблем.


Ответы (1 шт):

Автор решения: Daniel Protopopov

Если процесс не может создать файл в директории, значит у него нет на это прав. Это не ошибка кода, а настроек доступа к директории для пользователя, под которым запускается скрипт. Так же, скорее всего, если директории не существует, то она не будет создана и тоже будет ошибка.

Можете использовать getStatusString функцию для получения информации об ошибке.

→ Ссылка