Så här ser tumnagelegneratorn jag införskaffat/fått av det trevliga folket på WF.
<?php
include("setts/conn.php");
//###################################
$thumb = "pic/thumb"; // Mappen där thumbnails ska sparas
$original = "pic/original"; // Mappen där originalbilden ska sparas
$nybredd = 100; // Bredd som bilden ska ha i pixlar
$kompression = 100; // Vilken komprimering (100=ingen)
//###################################
?>
<form action="test.php" method="post" enctype="multipart/form-data" name="upload" id="upload">
<input name="file" type="file" size="30" />
<input type="submit" name="nyBild" value="Ladda upp" />
</form>
<?php
// ladda upp ny bild
if (!empty($_FILES['file']['name'])) {
if (is_uploaded_file($_FILES['file']['tmp_name'])) {
$bildnamn = $_FILES['file']['name'];
$tempnamn = $_FILES['file']['tmp_name'];
$filandelse = strtolower(substr($bildnamn, (strrpos($bildnamn, '.'))));
$bildstrl = getimagesize($tempnamn);
//slumpar fram ett filnamn
include ("setts/filnamns_generator.php");
$bildnamn = $u;
// Kolla filen så det är en bild
if (($_FILES['file']['type'] != "image/gif") && ($_FILES['file']['type'] != "image/jpeg") && ($_FILES['file']['type'] != "image/png") && ($_FILES['file']['type'] != "image/pjpeg")) {
echo "Bilden måste vara av typen gif, jpg, jpeg eller png.<br />
Filändelser med stora bokstäver accepteras inte";
exit;
}
// Ändra storleken om bilden är större än $nybredd
if ($nybredd < $bildstrl[0]) {
$nyhojd = ceil(($nybredd / $bildstrl[0]) * $bildstrl[1]);
// Gör om bildens storlek
$nybild = imagecreatetruecolor($nybredd, $nyhojd);
// Kontrollera vilken bildtyp det är (1=gif , 2=jpg , 3=png)
switch($bildstrl[2]) {
case 1:
$bild = imagecreatefromgif($tempnamn);
break;
case 2:
$bild = imagecreatefromjpeg($tempnamn);
break;
case 3:
$bild = imagecreatefrompng($tempnamn);
break;
}
imagecopyresampled($nybild, $bild, 0, 0, 0, 0, $nybredd, $nyhojd, $bildstrl[0], $bildstrl[1]);
// Kopiera bilden till sin mapp
$bild_namn = "$bildnamn$filandelse";
$sparabild = $thumb . '/' . $bild_namn;
imagejpeg($nybild, $sparabild, $kompression);
//Flyttar orginalbilden till rätt mapp
$bild_namn = "$bildnamn$filandelse";
move_uploaded_file($tempnamn, $original . '/' . $bild_namn);
$doit = "INSERT INTO annons (thumb, original) VALUES ('$bildnamn$filandelse', '$bildnamn$filandelse')";
$now = mysql_query($doit) or die ('Ett fel har uppstått');
// Frigör minne som associerats med bilderna
imagedestroy($bild);
imagedestroy($nybild);
} else {
move_uploaded_file($tempnamn, $thumb . '/' . $bild_namn);
copy ($thumb . '/' . $bild_namn, $original . '/' . $bild_namn);
$doit = "INSERT INTO annons (thumb, original) VALUES ('$bildnamn$filandelse', '$bildnamn$filandelse')";
$now = mysql_query($doit) or die ('Ett fel har uppstått');
}
}
}
?>
Jag önskar nu lägga till ett litet javascript som kollar formuläret vid submit vad gäller filändelsen.. Jag vill bara tillåta jpeg, jpg, png, gif... om det försöks med en annan filändelse ska en Alert säga ifrån när man submitar.. alltså den stannar innan den laddat upp någonting.
Går detta ordna på ett smidigt sätt??
PS. Wohoo 500 inlägg!!