login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Uploadformulier

Offline Rooonald - 24/06/2006 18:52
Avatar van RooonaldHTML 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?

  1. <?
  2. //--- zet path
  3. $path = "images/"; // met slash en chmod 777! (of lager ivm veiligheid)
  4. //--- zet max. kb's
  5. $maxkb = 40960; // 40960 gedeelt door 1024 is 40 (kb) DUS 1024 keer <aantal kb's> = $maxkb
  6. //--- watermerk path
  7. $path_watermerk = "watermerk.png"; // dit MOET een transparante .png zijn!!!
  8.  
  9. //--- 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!
  10. 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"))
  11. {
  12. //--- upload image naar $path
  13. move_uploaded_file($_FILES['userfile']['tmp_name'], $path . $_FILES['userfile']['name']);
  14.  
  15. //--- transparante watermerk
  16. $watermerk = imagecreatefrompng($path_watermerk);
  17. $watermerk_width = imagesx($watermerk);
  18. $watermerk_height = imagesy($watermerk);
  19. imagecreatetruecolor($watermerk_width, $watermerk_height);
  20.  
  21. //--- orriginele image
  22. $image = imagecreatefromjpeg($path . $_FILES['userfile']['name']);
  23. $size = getimagesize($path . $_FILES['userfile']['name']);
  24.  
  25. //--- defineer de coordinaten van het watermerk - dit voorbeeld is links onder
  26. /*
  27.   bijv: geuploade plaatje: 180 x 130
  28.   watermerk groote: 50 x 16
  29.  
  30.   berekening voor coordinaten 'x' as:
  31.   180 (breedte geuploade foto) - 50 (breedte watermerk) - 5 (ruimte rechts) = 125 pixels vanaf links
  32.  
  33.   berekening voor 'y' as:
  34.   130 (hoogte geuploade foto) - 16 (hoogte watermerk) - 5 (ruimte onder) = 109 pixels vanaf boven
  35.   */
  36.  
  37. //--- dit is voor rechts boven
  38. $xas = $size[0] - $watermerk_width - 5;
  39. $yas = 5;
  40.  
  41. //--- overschrijf het 'geuploade bestand' en voeg watermerk toe
  42. imagecopymerge($image, $watermerk, $xas, $yas, 0, 0, $watermerk_width, $watermerk_height, 100);
  43.  
  44. //--- upload image
  45. imagejpeg($image, $path . $_FILES['userfile']['name']); // max. kwaliteit
  46.  
  47. imagedestroy($image);
  48. imagedestroy($watermerk);
  49.  
  50. echo "De foto is geupload. Je kunt de foto bekijken door op de onderstaande link te klikken:<br />";
  51. echo "<a href=\"" . $path . $_FILES['userfile']['name'] . "\">" . $path . $_FILES['userfile']['name'] . "</a><p>";
  52.  
  53. echo "<img src=\"" . $path . $_FILES['userfile']['name'] . "\"><p>";
  54.  
  55. echo "<a href=\"" . $_SERVER['PHP_SELF'] . "\">upload nog een foto</a>";
  56. }
  57. else
  58. {
  59. //--- errors
  60. if ($_POST['submit'])
  61. {
  62. if (file_exists($path . $_FILES['userfile']['name']) && $_FILES['userfile']['name'])
  63. echo "<b>Error! Bestand bestaat al, hernoem de foto en probeer het opnieuw.</b><p>";
  64. elseif ($_FILES['userfile']['size'] > $maxkb)
  65. echo "<b>Error! Bestand is groter dan " . $maxkb . "bytes. Verklein de foto en probeer het opnieuw</b><p>";
  66. elseif (strtolower(substr($_FILES['userfile']['name'], -3)) != "jpg" && strtolower(substr($_FILES['userfile']['name'], -3)) != "JPG")
  67. echo "<b>Error! De foto heeft een verkeerde bestandsnaam. Er mogen alleen foto's geupload worden met als bestandsnaam .jpg of .jpeg.</b><p>";
  68. else
  69. echo "<b>Error! De foto is niet goed geupload of er is helemaal geen foto geupload. Probeer het opnieuw.</b><p>";
  70. }
  71. else
  72. echo "Selecteer een foto om te uploaden. In de foto wordt automatisch het logo van onze site verwerkt.<p>";
  73.  
  74. //--- formulier met enctype multipart/form-data ivm de file upload
  75. echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\" enctype=\"multipart/form-data\">";
  76. echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $maxkb . "\" />";
  77. echo "Bestand:<br />";
  78. echo "<input type=\"file\" name=\"userfile\" value=\"" . $_POST['userfile'] . "\" /><br />";
  79. echo "<input type=\"submit\" name=\"submit\" value=\"uploaden\" />";
  80. echo "</form>";
  81. }
  82.  
  83. ?>

6 antwoorden

Gesponsorde links
Offline eXziBit - 24/06/2006 19:45
Avatar van eXziBit Onbekend En waar staat die functie? Ik zie hem niet meteen.
Offline marten - 24/06/2006 19:57
Avatar van marten Beheerder regel 11 staat de functie achteraan
Offline Rooonald - 24/06/2006 20:18
Avatar van Rooonald HTML interesse Klopt en ook op regel 67
Offline CDNC - 24/06/2006 20:39
Avatar van CDNC PHP ver gevorderde op 67 niet, dat is voor een of andere foutmelding te maken...
Offline eXziBit - 24/06/2006 22:26
Avatar van eXziBit Onbekend Op regel elf zet men de extentie eventjes om naar kleine letters om te kijken of het een geldige extentie is, maar er is daar GEEN sprake van het aanmaken van de file met de kleine extentie
Offline Button - 25/06/2006 08:41 (laatste wijziging 25/06/2006 08:41)
Avatar van Button PHP ver gevorderde
  1. strtolower(substr($_FILES['userfile']['name'], -3)) == "JPG"
jep maar dit is ook een beetje onlogisch... je gaat het eerst omzetten naar kleine letters en dan wordt het vergeleken met een extensie in HOOFDletters
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s