function add($VAR) { global $_FILES, $smarty, $C_debug, $C_translate; if ($VAR['file_location_type'] == '') { return false; } $lt = $VAR['file_location_type']; // UPLOADED FILE FROM LOCAL PC if ($lt == 0) { ### Validate the file upoad: if (!isset($_FILES['upload_file']) || $_FILES['upload_file']['size'] <= 0) { global $C_debug; $C_debug->alert('You must go back and enter a file for upload!'); return; } $VAR['file_size'] = $_FILES['upload_file']['size']; $VAR['file_type'] = $_FILES['upload_file']['type']; $VAR['file_name'] = $_FILES['upload_file']['name']; } elseif ($lt == 1) { ### Validate the remote file can be opened and is greater than 0K $file = $VAR['url_file']; if (empty($file) || !($fp = fopen($file, "r"))) { # error $C_debug->alert($C_translate->translate('remote_file_err', 'file', '')); return; } else { $VAR['file_location'] = $file; $fn = explode("/", $file); $count = count($fn) - 1; $VAR['file_name'] = $fn[$count]; $headers = stream_get_meta_data($fp); $headers = $headers['wrapper_data']; for ($i = 0; $i < count($headers); $i++) { if (preg_match('/^Content-Type:/i', $headers[$i])) { $VAR['file_type'] = preg_replace('/Content-Type: /i', '', $headers[$i]); } elseif (preg_match('/^Content-Length:/i', $headers[$i])) { $VAR['file_size'] = preg_replace('/Content-Length: /i', '', $headers[$i]); } } } } elseif ($lt == 2) { @($file = $VAR['local_file']); if (is_file($file) && is_readable($file)) { if (preg_match("@/@", $file)) { $fn = explode("/", $file); } else { if (preg_match("@\\@", $file)) { $fn = explode("\\", $file); } else { $fn[0] = $file; } } $count = count($fn) - 1; $VAR['file_name'] = $fn[$count]; $VAR['file_size'] = filesize($file); $VAR['file_location'] = $file; include_once PATH_CORE . 'file_extensions.inc.php'; $ext = new file_extensions(); $VAR['file_type'] = $ext->content_type($file); } else { $C_debug->alert($C_translate->translate('local_file_err', 'file', '')); return; } } else { return false; } ### Create the record $type = "add"; $this->method["{$type}"] = explode(",", $this->method["{$type}"]); $db = new CORE_database(); $id = $db->add($VAR, $this, $type); ### Copy the uploaded file, or exit if fail: if ($lt == 0) { if (isset($id) && $id > 0) { if (!copy($_FILES['upload_file']['tmp_name'], PATH_FILES . 'file_' . $id . '.dat')) { $C_debug->alert($C_translate->translate('copy_file_err', 'file', '')); } } unlink($_FILES['upload_file']['tmp_name']); } }