2015-12-27 3 views
0

Я написал этот код для создания ZIP-файла моего загруженного приложения, приложение wp имеет возможность загружать pdf, эти загружаемые pdf будут сохранены в каталоге загрузки, я получил результат успеха без ошибок, но все же zip не создается внутри сервера каталогов. Вот код:Ошибка при создании 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(); 
+0

Вы знаете, это, вероятно, * * прозвучит немного сумасшедший с точки зрения кодирования, но на самом деле решить мою проблему раз ... попробуйте использовать '$ k => $ value' внутри foreach, а затем используйте '$ value [$ k]' внутри вашего 'explode()'. Это может не дать вам никаких ошибок, но это не означает, что ваш оператор 'if' внутри вашего' foreach' фактически возвращает «true». В любом случае, просто откликните каждую переменную, чтобы увидеть, действительно ли это то, что вы ожидаете от них. – Zeke

+0

Спасибо за ваш быстрый ответ, я протестировал и, похоже, тот же результат. Лучше я добавляю весь файл создания zip здесь: https://github.com/karthick-m-ica/backend/blob/master/zip. php Пожалуйста, проверьте это, если вы решите какое-либо решение этой проблемы. Возможно, у нас есть какие-либо разрешения на файл или проблема с конфигурацией на сервере? –

+0

Добро пожаловать. Если ваши файлы - 0644, а по умолчанию - 0755, я думаю, что все в порядке с разрешениями на файлы. Но так или иначе, вы эхо каждого '$ path [0]' и '$ path [1]', чтобы убедиться, что они на самом деле являются тем, кем вы хотите их видеть? Я проверю ваш файл. – Zeke

ответ

0

Наконец-то исправите проблему, обновите изменения в пути PDF. Вот изменения на код:

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

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

Хорошо, так как я не знаю вашего алгоритма, я бы никогда не думал, что один из ха-ха. Но я рад, что вы нашли свой ответ. Удачи сейчас! – Zeke

Смежные вопросы