windows — PHP: ZipArchive :: close (): не удалось переименовать временный файл: такого файла или каталога нет

Я не могу создать ZIP-файл. Это дает мне эту ошибку. поиск не оказалось никаких результатов. Это моя функция.

  function CompressFile($fromExtractedFile)
{
$archive = new ZipArchive;

if ($archive->open($fromExtractedFile.".zip", ZipArchive::OVERWRITE | ZipArchive::CREATE) === TRUE) {
$archive->addFile($fromExtractedFile, 'payload.csv');
$archive->close();
}
else {
throw new Exception ("Compress operation to ZIP file failed. $fromExtractedFile -> $fromExtractedFile.zip");
}
return $fromExtractedFile.".zip";
}

Приставка:

Compressing /tmp/bing_PeUYiT
PHP Warning 'yii\base\ErrorException' with message 'ZipArchive::close(): Renaming temporary file failed: No such file or directory'

Docs: http://php.net/manual/en/book.zip.php

PHP 5.6, Win 8.1, Cygwin 2.5.2

Вот то же самое в ПсиШ:

>>> $archive = new ZipArchive
=> ZipArchive {#199
+"status": 0,
+"statusSys": 0,
+"numFiles": 0,
+"filename": "",
+"comment": "",
}
>>> $archive->open('/tmp/bing_PeUYiT.zip', ZipArchive::OVERWRITE|ZipArchive::CREATE)
=> true
>>> $archive->addFile('/tmp/bing_PeUYiT', 'payload.csv')
=> true
>>> $archive->close()
PHP warning:  ZipArchive::close(): Renaming temporary file failed: No such file or directory on line 1

3

Решение

поскольку ZipArchive сломан, я использовал PclZip вместо.

$ composer требуют pclzip / pclzip

  function compressFile2($file) {
$zip = new PclZip($file.'.zip');
$error = $zip->create([[PCLZIP_ATT_FILE_NAME => $file, PCLZIP_ATT_FILE_NEW_FULL_NAME => 'payload.csv']]); # array of array
#$error = $zip->create($file, PCLZIP_OPT_REMOVE_ALL_PATH);
if ($error == 0) trigger_error("Error : ".$zip->errorInfo(true));
return $file.'.zip';
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]