Location: PHPKode > projects > PHP Help Desk Software > inc/attachments.inc.php
<?php
/*******************************************************************************
*  Title: Help Desk Software HESK
*  Version: 2.2 from 9th June 2010
*  Author: Klemen Stirn
*  Website: http://www.hesk.com
********************************************************************************
*  COPYRIGHT AND TRADEMARK NOTICE
*  Copyright 2005-2010 Klemen Stirn. All Rights Reserved.
*  HESK is a registered trademark of Klemen Stirn.

*  The HESK may be used and modified free of charge by anyone
*  AS LONG AS COPYRIGHT NOTICES AND ALL THE COMMENTS REMAIN INTACT.
*  By using this code you agree to indemnify Klemen Stirn from any
*  liability that might arise from it's use.

*  Selling the code for this program, in part or full, without prior
*  written consent is expressly forbidden.

*  Using this code, in part or full, to create derivate work,
*  new scripts or products is expressly forbidden. Obtain permission
*  before redistributing this software over the Internet or in
*  any other medium. In all cases copyright and header must remain intact.
*  This Copyright is in full effect in any country that has International
*  Trade Agreements with the United States of America or
*  with the European Union.

*  Removing any of the copyright notices without purchasing a license
*  is expressly forbidden. To remove HESK copyright notice you must purchase
*  a license for this script. For more information on how to obtain
*  a license please visit the page below:
*  https://www.hesk.com/buy.php
*******************************************************************************/

/* Check if this is a valid include */
if (!defined('IN_SCRIPT')) {die($hesklang['attempt']);}

/***************************
Function hesk_uploadFiles()
***************************/
function hesk_uploadFile($i) {
	global $hesk_settings, $hesklang, $trackingID;

	/* Return if name is empty */
	if (empty($_FILES['attachment']['name'][$i])) {return '';}

	/* Check file size */
	if ($_FILES['attachment']['size'][$i] > ($hesk_settings['attachments']['max_size']*1024))
	{
	    hesk_error(sprintf($hesklang['file_too_large'],$_FILES['attachment']['name'][$i]));
	}
	else
	{
	    $file_size = $_FILES['attachment']['size'][$i];
	}

	/* Check file extension */
	$ext = strtolower(strrchr($_FILES['attachment']['name'][$i], "."));
	if (!in_array($ext,$hesk_settings['attachments']['allowed_types']))
	{
	    hesk_error(sprintf($hesklang['type_not_allowed'],$_FILES['attachment']['name'][$i]));
	}

	/* Generate a random file name */
	$file_realname = str_replace(array('/','\\','#',',',' '), array('','','','','_'),$_FILES['attachment']['name'][$i]);
	$useChars='AEUYBDGHJLMNPQRSTVWXZ123456789';
	$tmp = $useChars{mt_rand(0,29)};
	for($j=1;$j<10;$j++)
	{
	    $tmp .= $useChars{mt_rand(0,29)};
	}

    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;
    }

	/* If upload was successful let's create the headers */
	if (!move_uploaded_file($_FILES['attachment']['tmp_name'][$i], $hesk_settings['server_path'].'/attachments/'.$file_name))
	{
	    hesk_error($hesklang['cannot_move_tmp']);
	}

	$info = array(
	    'saved_name'=> $file_name,
	    'real_name' => $file_realname,
	    'size'      => $file_size
	);

	return $info;
} // End hesk_uploadFile()
?>
Return current item: PHP Help Desk Software