创建zip时没有错误,但它不会在目录中创建

时间:2015-12-27 16:06:18

标签: php

我写了这段代码来创建我上传的附件的ZIP文件,wp应用程序有一个上传pdf的选项,那些上传pdf将存储在上传目录下,我得到的结果成功没有错误但仍然是zip未在目录服务器中创建。这是代码:

    // Code for Getting links (Path)of Attachements 
     $list = array();
// $count = 1;
foreach($applicants as $key=>$val) {
 $cat_id =explode("-", $key);   
  foreach($val as $appkey=>$appval) { 
      // if(($appval['name'])=='Navn') {
      //   $names = $count . '_' . $cat_id[1] . '_' .   stripslashes($appval['value']) ;       
      // }
      if(($appval['name']) == ' (PDF)') {
        $attach = stripslashes($appval['value']) ;
        $list[] = $cat_id[0].'-'. $cat_id[1].'/' . $attach; // Attaching ID and Category to attachement file name
      }
  }
 // $count++;   
 } 

$paths = array();
foreach ($list as $list) {
$data = explode('/',$list);

$pdfpath='../../' . $data[7] . '/' . $data[8] . '/' . $data[9] . '/' . $data[10];
$name=(string)$data[0] . '_' . $data[10];

$paths[] = $pdfpath."*".$name; 
}

$zip = new ZipArchive;
$rand = rand(0,5000);
// Generating random file name for zipcode
if ($zip->open($rand . 'appl_attachments.zip',  ZipArchive::CREATE)) {

 // add files to zip from the path i.e uplaods(Folder) if file exists
  foreach ($paths as  $value ) { 
  $path=explode("*", $value);
  if(file_exists($path[0])) {
    $zip->addFile($path[0],$path[1]);
  }     
  }
  $zip->close();

1 个答案:

答案 0 :(得分:0)

最后解决了这个问题,更新了pdf路径上的更改。 以下是代码的更改:

$paths = array(); 
foreach ($list as $list) {
$data = explode('/',$list);

$pdfpath='../../' . $data[6] . '/'. $data[7] . '/' . $data[8] . '/' . $data[9] ;
$name=$data[9];