3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)
  • Q:
    Bijdrager
    iBert

    [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…

    Bijdrager
    freshface

    [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]

    Bijdrager
    iBert

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

3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.