| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | <?php/** * Helper library for working with uploads *//** * Guess on the mimetype based on file extension * * @param string $originalName * @return string */function tp_upload_get_mimetype($originalName) {	$extension = substr(strrchr($originalName, '.'), 1);	switch (strtolower($extension)) {		case 'png':			return 'image/png';			break;		case 'gif':			return 'image/gif';			break;		case 'jpg':		case 'jpeg':			return 'image/jpeg';			break;		default:			return 'unknown';			break;	}}/** * Check if this is an image * * @param string $mime * @return bool false = not image */function tp_upload_check_format($mime) {	$accepted_formats = array(		'image/jpeg',		'image/png',		'image/gif',		'image/pjpeg',		'image/x-png',	);	if (!in_array($mime, $accepted_formats)) {		return false;	}	return true;}/** * Check if there is enough memory to process this image * * @param string $image_lib * @param int $requiredMemory * @return bool false = not enough memory */function tp_upload_memory_check($image_lib, $mem_required) {	if ($image_lib !== 'GD') {		return true;	}	$mem_avail = elgg_get_ini_setting_in_bytes('memory_limit');	$mem_used = memory_get_usage();	$mem_avail = $mem_avail - $mem_used - 2097152; // 2 MB buffer	if ($mem_required > $mem_avail) {		return false;	}	return true;}/** * Check if image is within limits * * @param int $image_size * @return bool false = too large */function tp_upload_check_max_size($image_size) {	$max_file_size = (float) elgg_get_plugin_setting('maxfilesize', 'tidypics');	if (!$max_file_size) {		// default to 5 MB if not set		$max_file_size = 5;	}	// convert to bytes from MBs	$max_file_size = 1024 * 1024 * $max_file_size;	return $image_size <= $max_file_size;}/** * Check if this image pushes user over quota * * @param int $image_size * @param int $owner_guid * @return bool false = exceed quota */function tp_upload_check_quota($image_size, $owner_guid) {	static $quota;	if (!isset($quota)) {		$quota = elgg_get_plugin_setting('quota', 'tidypics');		$quota = 1024 * 1024 * $quota;	}	if ($quota == 0) {		// no quota		return true;	}	$owner = get_entity($owner_guid);	$image_repo_size = (int)$owner->image_repo_size;	return ($image_repo_size + $image_size) < $quota;}
 |