0

有人会告诉我这里发生了什么:

if($attach and $attachTemp){

  move_uploaded_file($attachTemp,'static/downloads/'.$lastIdInsert."_".$attach);

  $dataAttach['attach'] = $lastIdInsert."_".$attach;
  $updateAttach = $this->model_schemas->update($lastIdInsert,$data=array('download'=>'1'));
  /*ZIP IT*/
  $zip = new ZipArchive();
  $zip->open('static/downloads/'.$lastIdInsert."_".$attach);
  $zip->addFile('static/downloads/'.$lastIdInsert."_".$attach,$lastIdInsert.".zip");

  $zip->close();

}

它不会压缩该目录中的文件。

然后我收到2个错误:

Message: ZipArchive::addFile() [ziparchive.addfile]: Invalid or unitialized Zip object
Message: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object

文件已移动但未压缩。

4

1 回答 1

2

您必须将标志指定为创建或覆盖。你可以这样做;

$zip->open('static/downloads/'.$lastIdInsert."_".$attach, 
           ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);
于 2012-10-20T16:48:10.933 回答