2016-08-11 5 views
3

zipファイルを作成できません。それは私にこのエラーを与える。 searchが見つかりませんでした。これが私の機能です。PHP:ZipArchive :: close():一時ファイルの名前を変更できませんでした。そのようなファイルやディレクトリはありません。

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' 

ドキュメント:http://php.net/manual/en/book.zip.php

PHP 5.6、勝利8.1、ここで

のCygwin 2.5.2 PsyShでも同じです:

>>> $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 
+0

pclzip/pclzipが必要です。 https://bugs.php.net/bug.php?id=72818 – Chloe

答えて

0

以降が壊れていますが、代わりに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'; 
    } 
関連する問題