$hesk_settings['attachments']['max_size']) { return hesk_fileError(sprintf($hesklang['file_too_large'], $file_realname)); } else { $file_size = $_FILES['attachment']['size'][$i]; } /* Generate a random file name */ $useChars = 'AEUYBDGHJLMNPQRSTVWXZ123456789'; $tmp = uniqid(); for ($j = 1; $j < 10; $j++) { $tmp .= $useChars{mt_rand(0, 29)}; } if ($ajax) { // Temporary attachments are, well, temporary. We can just use the real name since they'll be deleted afterwards. $file_name = $file_realname; } else { if (defined('KB')) { $file_name = substr(md5($tmp . $file_realname), 0, 200) . $ext; } else { $file_name = substr($trackingID . '_' . md5($tmp . $file_realname), 0, 200) . $ext; } } // Does the temporary file exist? If not, probably server-side configuration limits have been reached // Uncomment this for debugging purposes /* if ( ! file_exists($_FILES['attachment']['tmp_name'][$i]) ) { return hesk_fileError($hesklang['fnuscphp']); } */ /* If upload was successful let's create the headers */ $directory = $hesk_settings['attach_dir']; if (!$isTicket) { $directory = $modsForHesk_settings['kb_attach_dir']; } if ($ajax) { $directory = $modsForHesk_settings['']; } if (!move_uploaded_file($_FILES['attachment']['tmp_name'][$i], dirname(dirname(__FILE__)) . '/' . $directory . '/' . $file_name)) { return hesk_fileError($hesklang['cannot_move_tmp']); } $info = array( 'saved_name' => $file_name, 'real_name' => $file_realname, 'size' => $file_size ); return $info; } // End hesk_uploadFile() function hesk_fileError($error) { global $hesk_settings, $hesklang, $trackingID; global $hesk_error_buffer; $hesk_error_buffer['attachments'] = $error; return false; } // End hesk_fileError() function hesk_removeAttachments($attachments, $isTicket) { global $hesk_settings, $hesklang, $modsForHesk_settings; $directory = $hesk_settings['attach_dir']; if (!$isTicket) { $directory = $modsForHesk_settings['kb_attach_dir']; } $hesk_settings['server_path'] = dirname(dirname(__FILE__)) . '/' . $directory . '/'; foreach ($attachments as $myatt) { hesk_unlink($hesk_settings['server_path'] . $myatt['saved_name']); } return true; } // End hesk_removeAttachments()