Предупреждение: ZipArchive::close(): Не удалось создать временный файл: неизвестная ошибка.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Предупреждение: ZipArchive::close(): Не удалось создать временный файл: неизвестная ошибка.

Сообщение Anonymous »

У меня возникла странная ошибка в PHP: я просматриваю множество каталогов и архивирую старые файлы, заархивировав папку в ZIP-архив, а затем удалив папку со всеми ее файлами внутри. По большей части это работает нормально, но для нескольких записей я получаю эту ошибку:

Предупреждение: ZipArchive::close(): Не удалось создать временный файл. :
Неизвестная ошибка в
myfile.php в
строке 132

У меня есть этот PHP-код, взятый непосредственно из https://stackoverflow.com/a/4914807/2028935, но я вставил выход(), чтобы убедиться в обнаружении ошибки:

Код: Выделить всё

// Get real path for our folder
$rootPath = realpath("/myfolder/pathX");

// Initialize archive object
$zip = new ZipArchive();
$zip->open("/myfolder/myfile.zip", ZipArchive::CREATE | ZipArchive::OVERWRITE);

// Create recursive directory iterator
/** @var SplFileInfo[] $files */
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);

foreach ($files as $name => $file) {
// Skip directories (they would be added automatically)
if (!$file->isDir()) {
// Get real and relative path for current file
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);

// Add current file to archive
$zip->addFile($filePath, $relativePath);
}
}

// Zip archive will be created only after closing object
if(!$zip->close()) {
exit();
}
Ошибка возникает в строке 132, которая является этой строкой, if(!$zip->close()) {
У меня нет проблем с правами доступа к папке или файлу, поскольку папка и файлы удаляются (другой код), но я не могу понять, что такое Неизвестная ошибка в ZIP?
Я использую PHP 7.4 в Windows Сервер.
### UPDATE ###
Похоже, неизвестная ошибка связана с путем к ZIP-файлу. слишком долго, но я не понимаю почему. Если путь в $zip->open("/myfolder/myfile.zip", ZipArchive::CREATE | ZipArchive::OVERWRITE); длиннее или равен 250 символам, тогда возникает эта ошибка!?
Я мог бы понять, будет ли ограничение в 256 или 260 символов, поскольку я вижу, что там могут быть некоторые ограничения, но почему 250?
В настоящее время я изучаю, могу ли я уменьшить длину пути, выполнив сопоставление локального диска/папки с помощью команды DOS SUBST или через реестр HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet. \Control\Session Manager\Устройства DOS

Подробнее здесь: https://stackoverflow.com/questions/698 ... nown-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • PhpSpreadsheet в PHP 7 > ZipArchive:: close не удалось создать временный файл
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Ziparchive :: Close (): неспособность создать временный файл: разрешение отказано в nginx
    Anonymous » » в форуме Php
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • ZipArchive::close(): Невозможно открыть файл: Хорошо, но какой файл?
    Anonymous » » в форуме Php
    0 Ответы
    90 Просмотры
    Последнее сообщение Anonymous
  • ZipArchive::close() Неверный или неинициализированный объект Zip.
    Anonymous » » в форуме Php
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Неизвестная ошибка Appium: при обработке команды произошла неизвестная ошибка на стороне сервера. Исходная ошибка: для п
    Anonymous » » в форуме JAVA
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»