HTML interesse |
|
Hey, ik gebruik het volgende script om foto's te uploaden, er zit een functie in om de extensies van de bestanden altijd in kleine letters op te slaan maar die werkt niet. Is er iemand die een idee heeft waarom het niet werkt?
<?
//--- zet path
$path = "images/"; // met slash en chmod 777! (of lager ivm veiligheid)
//--- zet max. kb's
$maxkb = 40960; // 40960 gedeelt door 1024 is 40 (kb) DUS 1024 keer <aantal kb's> = $maxkb
//--- watermerk path
$path_watermerk = "watermerk.png"; // dit MOET een transparante .png zijn!!!
//--- bekijk of het bestand kleiner of net zo groot als 40 kb is en of de foto wel geupload is en of extentie wel .jpg of .jpeg is!
if ($_POST['submit'] && $_FILES['userfile']['size'] <= $maxkb && !file_exists($path . $_FILES['userfile']['name']) && $_FILES['userfile']['size'] && is_uploaded_file($_FILES['userfile']['tmp_name']) && (strtolower(substr($_FILES['userfile']['name'], -3)) == "jpg" || strtolower(substr($_FILES['userfile']['name'], -3)) == "JPG"))
{
//--- upload image naar $path
move_uploaded_file($_FILES['userfile']['tmp_name'], $path . $_FILES['userfile']['name']);
//--- transparante watermerk
$watermerk = imagecreatefrompng($path_watermerk);
$watermerk_width = imagesx($watermerk);
$watermerk_height = imagesy($watermerk);
imagecreatetruecolor($watermerk_width, $watermerk_height);
//--- orriginele image
$image = imagecreatefromjpeg($path . $_FILES['userfile']['name']);
$size = getimagesize($path . $_FILES['userfile']['name']);
//--- defineer de coordinaten van het watermerk - dit voorbeeld is links onder
/*
bijv: geuploade plaatje: 180 x 130
watermerk groote: 50 x 16
berekening voor coordinaten 'x' as:
180 (breedte geuploade foto) - 50 (breedte watermerk) - 5 (ruimte rechts) = 125 pixels vanaf links
berekening voor 'y' as:
130 (hoogte geuploade foto) - 16 (hoogte watermerk) - 5 (ruimte onder) = 109 pixels vanaf boven
*/
//--- dit is voor rechts boven
$xas = $size[0] - $watermerk_width - 5;
$yas = 5;
//--- overschrijf het 'geuploade bestand' en voeg watermerk toe
imagecopymerge($image, $watermerk, $xas, $yas, 0, 0, $watermerk_width, $watermerk_height, 100);
//--- upload image
imagejpeg($image, $path . $_FILES['userfile']['name']); // max. kwaliteit
imagedestroy($image);
imagedestroy($watermerk);
echo "De foto is geupload. Je kunt de foto bekijken door op de onderstaande link te klikken:<br />";
echo "<a href=\"" . $path . $_FILES['userfile']['name'] . "\">" . $path . $_FILES['userfile']['name'] . "</a><p>";
echo "<img src=\"" . $path . $_FILES['userfile']['name'] . "\"><p>";
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "\">upload nog een foto</a>";
}
else
{
//--- errors
if ($_POST['submit'])
{
if (file_exists($path . $_FILES['userfile']['name']) && $_FILES['userfile']['name'])
echo "<b>Error! Bestand bestaat al, hernoem de foto en probeer het opnieuw.</b><p>";
elseif ($_FILES['userfile']['size'] > $maxkb)
echo "<b>Error! Bestand is groter dan " . $maxkb . "bytes. Verklein de foto en probeer het opnieuw</b><p>";
elseif (strtolower(substr($_FILES['userfile']['name'], -3)) != "jpg" && strtolower(substr($_FILES['userfile']['name'], -3)) != "JPG")
echo "<b>Error! De foto heeft een verkeerde bestandsnaam. Er mogen alleen foto's geupload worden met als bestandsnaam .jpg of .jpeg.</b><p>";
else
echo "<b>Error! De foto is niet goed geupload of er is helemaal geen foto geupload. Probeer het opnieuw.</b><p>";
}
else
echo "Selecteer een foto om te uploaden. In de foto wordt automatisch het logo van onze site verwerkt.<p>";
//--- formulier met enctype multipart/form-data ivm de file upload
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\" enctype=\"multipart/form-data\">";
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $maxkb . "\" />";
echo "Bestand:<br />";
echo "<input type=\"file\" name=\"userfile\" value=\"" . $_POST['userfile'] . "\" /><br />";
echo "<input type=\"submit\" name=\"submit\" value=\"uploaden\" />";
echo "</form>";
}
?>
<? //--- zet path $path = "images/"; // met slash en chmod 777! (of lager ivm veiligheid) //--- zet max. kb's $maxkb = 40960; // 40960 gedeelt door 1024 is 40 (kb) DUS 1024 keer <aantal kb's> = $maxkb //--- watermerk path $path_watermerk = "watermerk.png"; // dit MOET een transparante .png zijn!!! //--- bekijk of het bestand kleiner of net zo groot als 40 kb is en of de foto wel geupload is en of extentie wel .jpg of .jpeg is! if ($_POST['submit'] && $_FILES['userfile']['size'] <= $maxkb && !file_exists($path . $_FILES['userfile']['name']) && $_FILES['userfile']['size'] && is_uploaded_file($_FILES['userfile']['tmp_name']) && (strtolower(substr($_FILES['userfile']['name'], -3)) == "jpg" || strtolower(substr($_FILES['userfile']['name'], -3)) == "JPG")) { //--- upload image naar $path //--- transparante watermerk $watermerk = imagecreatefrompng($path_watermerk); $watermerk_width = imagesx($watermerk); $watermerk_height = imagesy($watermerk); imagecreatetruecolor($watermerk_width, $watermerk_height); //--- orriginele image $image = imagecreatefromjpeg($path . $_FILES['userfile']['name']); //--- defineer de coordinaten van het watermerk - dit voorbeeld is links onder /* bijv: geuploade plaatje: 180 x 130 watermerk groote: 50 x 16 berekening voor coordinaten 'x' as: 180 (breedte geuploade foto) - 50 (breedte watermerk) - 5 (ruimte rechts) = 125 pixels vanaf links berekening voor 'y' as: 130 (hoogte geuploade foto) - 16 (hoogte watermerk) - 5 (ruimte onder) = 109 pixels vanaf boven */ //--- dit is voor rechts boven $xas = $size[0] - $watermerk_width - 5; $yas = 5; //--- overschrijf het 'geuploade bestand' en voeg watermerk toe imagecopymerge($image, $watermerk, $xas, $yas, 0, 0, $watermerk_width, $watermerk_height, 100); //--- upload image imagejpeg($image, $path . $_FILES['userfile']['name']); // max. kwaliteit imagedestroy($image); imagedestroy($watermerk); echo "De foto is geupload. Je kunt de foto bekijken door op de onderstaande link te klikken:<br />"; echo "<a href=\"" . $path . $_FILES['userfile']['name'] . "\">" . $path . $_FILES['userfile']['name'] . "</a><p>"; echo "<img src=\"" . $path . $_FILES['userfile']['name'] . "\"><p>"; echo "<a href=\"" . $_SERVER['PHP_SELF'] . "\">upload nog een foto</a>"; } else { //--- errors if ($_POST['submit']) { if (file_exists($path . $_FILES['userfile']['name']) && $_FILES['userfile']['name']) echo "<b>Error! Bestand bestaat al, hernoem de foto en probeer het opnieuw.</b><p>"; elseif ($_FILES['userfile']['size'] > $maxkb) echo "<b>Error! Bestand is groter dan " . $maxkb . "bytes. Verklein de foto en probeer het opnieuw</b><p>"; echo "<b>Error! De foto heeft een verkeerde bestandsnaam. Er mogen alleen foto's geupload worden met als bestandsnaam .jpg of .jpeg.</b><p>"; else echo "<b>Error! De foto is niet goed geupload of er is helemaal geen foto geupload. Probeer het opnieuw.</b><p>"; } else echo "Selecteer een foto om te uploaden. In de foto wordt automatisch het logo van onze site verwerkt.<p>"; //--- formulier met enctype multipart/form-data ivm de file upload echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\" enctype=\"multipart/form-data\">"; echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $maxkb . "\" />"; echo "<input type=\"file\" name=\"userfile\" value=\"" . $_POST['userfile'] . "\" /><br />"; echo "<input type=\"submit\" name=\"submit\" value=\"uploaden\" />"; } ?>
|