public function hasVirus() { $retour = false; if ($this->isOnDisk()) { include_once 'classes/cs_virus_scan.php'; $virus_scanner = new cs_virus_scan($this->_environment); if (!$virus_scanner->isClean($this->getDiskFileName())) { $this->_virus_name = $virus_scanner->getVirusName(); if (!empty($this->_virus_name)) { $retour = true; } } unset($virus_scanner); } return $retour; }
private function doUpload($uploadData, $file_upload_rubric) { $session = $this->_environment->getSessionItem(); $isMulti = is_array($uploadData["name"]); $virus_found = false; $file_array = array(); if ($isMulti) { $numFiles = sizeof($uploadData["name"]); for ($i = 0; $i < $numFiles; $i++) { $tempFile = $uploadData["tmp_name"][$i]; /* if($session->issetValue($file_upload_rubric . "_add_files")) { $file_array = $session->getValue($file_upload_rubric . "_add_files"); } else { $file_array = array(); }*/ global $c_virus_scan; global $c_virus_scan_cron; $c_virus_scan = !isset($c_virus_scan) || $c_virus_scan === false ? false : true; $c_virus_scan_cron = !isset($c_virus_scan_cron) || $c_virus_scan_cron === false ? false : true; if (!empty($tempFile) && $uploadData["size"][$i] > 0) { $disc_manager = $this->_environment->getDiscManager(); if (isset($c_virus_scan) && $c_virus_scan && isset($c_virus_scan_cron) && !$c_virus_scan_cron) { // use virus scanner require_once 'classes/cs_virus_scan.php'; $virus_scanner = new cs_virus_scan($this->_environment); $temp_array = array(); if (!$virus_scanner->isClean($tempFile, $uploadData['name'])) { // Error virus detected $virus_found = true; $temp_array['virus'] = true; $temp_array['virusname'] = $virus_scanner->getVirusName(); } else { $temp_array['tmp_name'] = $disc_manager->moveUploadedFileToTempFolder($tempFile); $temp_array['file_id'] = $temp_array['name'] . '_' . getCurrentDateTimeInMySQL(); } $temp_array['name'] = $uploadData['name'][$i]; $file_array[] = $temp_array; } else { // do not use virus scanner require_once 'functions/date_functions.php'; $temp_array = array(); $temp_array['name'] = $uploadData['name'][$i]; $temp_array['tmp_name'] = $disc_manager->moveUploadedFileToTempFolder($tempFile); $temp_array['file_id'] = $temp_array['name'] . '_' . getCurrentDateTimeInMySQL(); $file_array[] = $temp_array; } unset($disc_manager); } } } else { $tempFile = $uploadData["tmp_name"]; /* if($session->issetValue($file_upload_rubric . "_add_files")) { $file_array = $session->getValue($file_upload_rubric . "_add_files"); } else { $file_array = array(); }*/ global $c_virus_scan; global $c_virus_scan_cron; $c_virus_scan = !isset($c_virus_scan) || $c_virus_scan === false ? false : true; $c_virus_scan_cron = !isset($c_virus_scan_cron) || $c_virus_scan_cron === false ? false : true; if (!empty($tempFile) && $uploadData["size"] > 0) { $disc_manager = $this->_environment->getDiscManager(); if (isset($c_virus_scan) && $c_virus_scan && isset($c_virus_scan_cron) && !$c_virus_scan_cron) { // use virus scanner require_once 'classes/cs_virus_scan.php'; $virus_scanner = new cs_virus_scan($this->_environment); $temp_array = array(); if (!$virus_scanner->isClean($tempFile, $uploadData['name'])) { // Error virus detected $virus_found = true; $temp_array['virus'] = true; $temp_array['virusname'] = $virus_scanner->getVirusName(); } else { $temp_array['tmp_name'] = $disc_manager->moveUploadedFileToTempFolder($tempFile); $temp_array['file_id'] = $temp_array['name'] . '_' . getCurrentDateTimeInMySQL(); } $temp_array['name'] = $uploadData['name']; $file_array[] = $temp_array; } else { // do not use virus scanner require_once 'functions/date_functions.php'; $temp_array = array(); $temp_array['name'] = $uploadData['name']; $temp_array['tmp_name'] = $disc_manager->moveUploadedFileToTempFolder($tempFile); $temp_array['file_id'] = $temp_array['name'] . '_' . getCurrentDateTimeInMySQL(); $file_array[] = $temp_array; } unset($disc_manager); } } $return = array(); $sessionArray = array(); if (sizeof($file_array) > 1) { foreach ($file_array as $file) { $return[] = array("file" => $file["tmp_name"], "name" => $file["name"], "type" => "", "file_id" => $file["file_id"], "virus" => $file["virus"], "virusname" => $file["virusname"]); } foreach ($return as $file) { $sessionArray[$file["file_id"]] = array("tmp_name" => $file["file"], "name" => $file["name"]); } } else { $return = array("file" => $file_array[0]["tmp_name"], "name" => $file_array[0]["name"], "type" => "", "file_id" => $file_array[0]["file_id"], "virus" => $file_array[0]["virus"], "virusname" => $file_array[0]["virusname"]); $sessionArray[$return["file_id"]] = array("tmp_name" => $return["file"], "name" => $return["name"]); } // merge current upload data with last one - session will be cleaned when storing item $currentSessionArray = array(); if ($session->issetValue("add_files")) { $currentSessionArray = $session->getValue("add_files"); } foreach ($currentSessionArray as $key => $value) { $sessionArray[$key] = $value; } $session->setValue("add_files", $sessionArray); $this->_environment->getSessionManager()->save($session); return $return; }