Scripts

Image Upload Functie

Ik kom hier al een hele tijd om mezelf te helpen maar nu ook een keer om hier iets bij te dragen. Van dit soort scripts staan er al een heleboel op deze site, maar vind dit persoonlijk toch de beste. Dit script kan plaatjes uploaden via een functie. Het kan controleren op de volgende dingen, deze kunnen ook gewoon leeg gelaten worden in de functie en dan worden ze genegeerd: - Image Type controle(types kanje hier vinden: http://nl3.php.net/manual/nl/function.exif-imagetype.php) - Extentie controle - Dimensies controle, in 3 verschillende modussen: MAX_SIZE, MIN_SIZE en EXACT_SIZE dit spreekt verder wel voor zich. - Bestandsnaam controle Het script werkt prima in elke versie boven php 4.3.2 dus ook in alle versies van php 5.

image-upload-functie
[b]De functie:[/b]
[code]
<?php

define("MAX_SIZE", 1);
define("MIN_SIZE", 2);
define("EXACT_SIZE", 3);

function UploadImage($file, $to_url, $allowed_types = NULL, $allowed_ext = NULL, $sizes = NULL)
{
	
	if(is_uploaded_file($file["tmp_name"]))
	{																
											
		list($x, $y, $image_type) = getimagesize($file["tmp_name"]);
		list($gx, $gy, $ctype) = $sizes;
		
		$split_name = explode(".", $file["name"]);		
		$file_name = $file["name"];			
		
		if((($sizes == NULL) || (($ctype == MAX_SIZE) && (($x <= $gx) && ($y <= $gy))) || (($ctype == MIN_SIZE) && (($x >= $gx) && ($y >= $gy))) || (($ctype == EXACT_SIZE) && (($x == $gx) && ($y == $gy)))) && (($allowed_types == NULL) || (array_search($image_type, $allowed_types, true) !== false)) && (($allowed_ext == NULL) || (array_search(strtolower($split_name[count($split_name) - 1]), $allowed_ext) !== false)))
		{	
	
			$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
	
			while(file_exists($to_url . $file_name))
			{
				
				$split_name[0] = $split_name[0] . $pattern{ rand(0, 35) };	
				
				$file_name = implode(".", $split_name);
				
			}
			
			move_uploaded_file($file["tmp_name"], ($to_url . $file_name));
			
			return $file_name;
	
		}
		
	}

	return false;	
	
}

?>
[/code]
[b]Stukje code om de functie aan te roepen:[/b]
[code]
<?php

if($_SERVER["REQUEST_METHOD"] == "POST") 
{
	
	$sizes = array(60, 40, MIN_SIZE); // array(x, y, MIN_SIZE|MAX_SIZE|EXACT_SIZE)
	$allowed_types = array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG); // array(types van: http://nl3.php.net/manual/nl/function.exif-imagetype.php)
	$allowed_ext = array("jpg", "png", "gif"); // array(ext1, ext2, ext3)
	$path = "images/"; // Str: waar die geupload moet worden.
	$global = $_FILES["objUpload"]; // De global.
	
	if($filename = UploadImage($global, $path, $allowed_types, $allowed_ext, $sizes))
	{
		
		echo "Het plaatje is succesvol geupload:<br />\n<img src=\"" . $path . $filename . "\" alt=\"" . $path . $filename . "\" />";
		
	}
	else
	{
		
		echo "Het plaatje kon niet geupload worden.";
		
	}	
	
}

?>
[/code]
[b]De HTML Code:[/b]
[code]
<form method="POST" enctype="multipart/form-data" action="upload.php">
	<input type="file" name="objUpload" />
	<input type="submit" name="objSubmit" value="Upload Plaatje" />
</form>
[/code]

Reacties

0
Nog geen reacties.