Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用本机库压缩PHP文件_Php_File_Zip - Fatal编程技术网

使用本机库压缩PHP文件

使用本机库压缩PHP文件,php,file,zip,Php,File,Zip,有人会告诉我这里发生了什么: if($attach and $attachTemp){ move_uploaded_file($attachTemp,'static/downloads/'.$lastIdInsert."_".$attach); $dataAttach['attach'] = $lastIdInsert."_".$attach; $updateAttach = $this->model_schemas->update($lastIdInsert,$da

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

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

文件已移动但未压缩。

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

$zip->open('static/downloads/'.$lastIdInsert."_".$attach, 
           ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);

另外,检查open()函数的返回状态
if($zip->open($static/downloads/)。$lastdinsert.。“$attach,ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE)!==TRUE)
@Faruk Sahin这不会打印任何东西($zip->open($static/downloads/)。$lastdinsert.。。。。“$attach,ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE)!==TRUE){echo“TRUE”}有什么建议吗?文件没有压缩,正如我在direcotry中看到的,没有压缩文件不是吗是吗?在打开时使用.zip文件名,这是zip文件的名称。在addFile方法中,添加要包含在zip中的文件。