$loggers['audit']->info('Disability added'); $files = $_FILES['disability_file']; for ($i = 0, $numFiles = sizeof($files['error']); $i < $numFiles; ++$i) { // Only add non-empty, valid files if ($files['error'][$i] === UPLOAD_ERR_OK && in_array($files['type'][$i], $allowedFileTypes, true)) { $handle = fopen($files['tmp_name'][$i], 'rb'); if (!$handle) { throw new \RuntimeException('File upload failed.'); } $content = fread($handle, $files['size'][$i]); if (!$content) { throw new \RuntimeException('Unable to read uploaded file.'); } fclose($handle); $file = array('name' => $files['name'][$i], 'size' => $files['size'][$i], 'type' => $files['type'][$i], 'document_type' => 'medical certificate', 'student_disability_id' => $student_disability_id); $model->addStudentDisabilityFile($file, $content); $loggers['audit']->info('Disability file added'); } } if ($_GET['mode'] === "completed-intake") { header('Location: profile.php?mode=completed-intake'); exit; } else { header('Location: profile.php'); exit; } } else { if ($_GET['page'] === "view-attachment") { $file = $model->fetchDisabilityFile($_GET['file_id'], $SESSION->student_num); header("Content-type: " . $file[0]['type'] . ""); header("Content-Disposition:attachment; filename=" . str_replace(',', '', $file[0]['name']) . "");