На форма за качване на файлове има 3 полета за качване. 2 от тях позволяват само по 1 файл, а третото много. В третата колона се записват разделени със запетая. До тук добре. Сега искам всички id-та които са добавени в импровизираната количка да ги свалям зипнати.
До момента успявам само 1 файл от 1-та колона да зипна и сваля. Как да добавя и другите 2 колони и да събира абсолютно всички файлове.
Пример:
А ето и целия код
Проблема е тук
Като в момента дава грешка
До момента успявам само 1 файл от 1-та колона да зипна и сваля. Как да добавя и другите 2 колони и да събира абсолютно всички файлове.
Пример:
Код:
SELECT upload_lesson_plan, upload_worksheet, upload_materials FROM document_upload WHERE upload_id = :id
Код:
$filePath = 'uploads/';
$files = $_SESSION['itemid'];
$valid_files = array();
if(is_array($files)) {
foreach($files as $file) {
$sql = "SELECT upload_lesson_plan, upload_worksheet, upload_materials FROM document_upload WHERE upload_id = :id";
$result = $pdo->prepare($sql);
$result->bindParam(":id", $file);
$result->execute();
$resArray = $result->fetch();
/*if (file_exists($filePath . $resArray['upload_materials'])) {
$valid_files[] = $resArray;
} */
foreach(['upload_lesson_plan', 'upload_worksheet', 'upload_materials'] as $col){
if (file_exists($filePath . $resArray[$col])){
$valid_files[] = $resArray[$col];
}
}
}
}
if(count($valid_files > 0)){
$zip = new ZipArchive();
$zip_name = "zipfile.zip";
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){
$error .= "* Sorry ZIP creation failed at this time";
}
foreach($valid_files as $res){
$zip->addFile($filePath.$res['upload_lesson_plan']);
$zip->addFile($filePath.$res['upload_worksheet']);
$zip->addFile($filePath.$res['upload_materials']);
}
$zip->close();
if(file_exists($zip_name)){
// force to download the zip
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="'.$zip_name.'"');
readfile($zip_name);
// remove zip file from temp path
unlink($zip_name);
unset($_SESSION['itemid']);
}
}
Код:
foreach($valid_files as $res){
$zip->addFile($filePath.$res['upload_lesson_plan']);
$zip->addFile($filePath.$res['upload_worksheet']);
$zip->addFile($filePath.$res['upload_materials']);
}
Код:
Warning: Illegal string offset 'upload_lesson_plan' in ...
Warning: Illegal string offset 'upload_worksheet' in ...
Warning: Illegal string offset 'upload_materials' in ...