[PHP] Uploaden en resizen van een foto

Weet iemand een stukje PHP-code om een foto up te loaden naar een zelfgedefinieerd mapje op de webspace, en deze direct automatisch te laten resizen (zonder dat er vervorming optreedt).

Oh ja, de hosting gebeurt niet op een Apache maar IIS server, weet niet of dat belang heeft…

[code:1:53f486fcfd] <? if (isset($_POST['uploaden'])) { require("config.php");

function create_image_from($ext,$naam)
{
if ($ext == ‘jpg’)
$org = imagecreatefromjpeg(“fotos/”.$naam);
elseif ($ext == ‘gif’)
$org = imagecreatefromgif(“fotos/”.$naam);
elseif ($ext == ‘png’)
$org = imagecreatefrompng(“fotos/”.$naam);
else
die(“ERROR while createing image -> create_image_from”);

return $org;
}

function complete_img($ext,$create,$naam)
{
if ($ext == ‘jpg’)
imagejpeg($create, “fotos/klein_”.$naam, 100);
elseif ($ext == ‘gif’)
imagegif($create, “fotos/klein_”.$naam, 100);
elseif ($ext == ‘png’)
imagepng($create, “fotos/klein_”.$naam, 100);
else
die(“ERROR while createing image -> complete_img”);
}

$img = $foto_name;

if ($img == "")
{
echo "U heeft geen bestand opgegeven.";
exit();
}

$naam = explode("/", $foto_name);
$naam = end($naam);
$naam = strtolower($naam);

$sql = “SELECT * FROM gallery WHERE naam = '”.$naam."’";
$res = mysql_query($sql) OR die(mysql_error());
$num = mysql_num_rows($res);

if ($num >= ‘1’)
die (“Sorry de naam van de afbeelding bestaat al. Geef u foto een andere naam en probeer het op nieuw.”);

$expl = explode(".", $img);
$ext = end($expl);
$ext = strtolower($ext);

if (!(($ext == ‘jpg’) || ($ext == ‘gif’) || ($ext == ‘png’)))
{
echo “U afbeelding heeft niet de juiste extensie.<br>”;
echo “Toegestaan zijn: gif, jpg en png<br>”;
exit();
}

copy($foto,"fotos/".$naam);

// functie orginele foto ophalen
$org = create_image_from($ext,$naam);

$size = getimagesize("fotos/".$naam);
$width = $size[0];
$height = $size[1];

if ($size[0] == $size[1])
{
$newwidth = 140;
$newheight = 140;
}
elseif ($size[0] > $size[1])
{
$newwidth = 140;
$newheight = ($size[1] * 140 / $size[0]);
}
elseif ($size[0] < $size[1])
{
$newheight = 140;
$newwidth = ($size[0] * 140 / $size[1]);
}
else
{
echo "ERROR while createing image -> size";
echo "$size[0] x $size[1]";
exit();
}

$create = imagecreatetruecolor($newwidth, $newheight);
echo "new: $newwidth x $newheight<br>";
echo "orginal: $width x $height<br>";
imagecopyresized($create, $org, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// functie orginele foto ophalen
complete_img($ext,$create,$naam);

imagedestroy($org);
imagedestroy($create);

$imgsize = $foto_size;
$name = $naam;
$size = round($imgsize / 1024);
$datum = date(“Y-m-d”);
echo “Naam: “.$name.”<br>”;
echo “Size: “.$size.” Kb<br>”;
echo “Datum: “.$datum.”<br>”;
$sql = “INSERT INTO gallery (naam,size,datum,jaar) VALUES (’”.$name."’, ‘".$size."’, ‘".$datum."’,’".$_POST[‘jaar’]."’)";
mysql_query($sql) OR die(mysql_error());

?>
<center>
U afbeeling is geupload.<hr><img src="fotos/klein_<? echo "$name";?>">
</center>
<?
}
?>
<center>
BELANGRKIJK: lycos.tripod ondersteunt GEEN gifjes. Als je dit toch probeert zul je een error krijgen.
<form method="post" action="<? echo $PHP_SELF; ?>" enctype="multipart/form-data">
Bestand: <input type="file" name="foto"><br>
<select name="jaar">
<option></option>
<option value="2003">2003</option>
<option value="2004">2004</option>
</select><br>
<input type="submit" name="uploaden" value="Uploaden">
</form>
</center>
[/code:1:53f486fcfd]

Héél fel bedankt konijn, you're a lifesaver (deadline *zucht *)!