Hoi.

Ook ik ga jullie even lastigvallen met mijn probleem !
Bij het uploaden wordt er een thumb aangemaakt zoals je merkt..

De 'originele' foto wordt in de map /i/ opgeslaan.
De thumb wordt opgeslaan in de map /i/t/

Maar graag had ik ook gehad dat de foto die in /i/ wordt opgeslaan ook een thumb wordt vooraleer hij daar opgeslaan wordt..
Hij mag max. 500 breed zijn, en max. 400 hoog.
De max. filesize mag 3MB zijn. Bij het aanmakenv an een thumb had ik graag dat die 3MB nog maar iets van een 100-500Kb zou zijn.. (Door de Quality te verlagen).

Om nog even uit te leggen...
Bij het uploaden van een foto gebeurt het volgende:

1. Originele foto wordt gewijzigd naar een max. hoogte van 400pixels, en max. breedte van 500pixels. Deze wordt opgeslaan in map /i/

2. Originele foto wordt opgeslaan met max. breedte van 84, en max. hoogte van 64. En wordt opgeslaan in map /i/t/

Stap 2 zit al in het script, maar hoe kan ik stap 1 hierin bouwen?


<?php 

// Mappen CHMOD 777 ! 

if(isset($_POST['uploaden'])){ 

    $dir = "i/";  // map voor images 
     
    $thumb_dir = "i/t/"; // map voor thums 
     
    $maxsize = 256000; // maximum groote images 
     
    $max_y = 64; // maximum hoogte thumbs 
     
    $max_x = 84; // maximum breedte thumbs 
     
    $pathinfo = pathinfo($_FILES['bestand']['name']); 
     
    $ext =  $pathinfo["extension"]; 
     
    switch($ext){ 
     
    case "jpg" : $thumb = imagecreatefromjpeg($_FILES['bestand']['tmp_name']); 
    break; 
     
    case "jpeg" : $thumb = imagecreatefromjpeg($_FILES['bestand']['tmp_name']); 
    break; 
     
    case "gif" : $thumb = imagecreatefromgif($_FILES['bestand']['tmp_name']); 
    break; 
     
    case "png" : $thumb = imagecreatefrompng($_FILES['bestand']['tmp_name']); 
    break; 
     
     
    default : $wrongext = 1; 
     
    } 
     
    if(isset($wrongext)){ 
     
        $error = "Deze extensie ondersteunen wij niet! Enkel .jpg, .jpeg, .gif & .png worden toegelaten!<br><b>Oplossing:<b> Open de foto in Paint, klik op Bestand > Opslaan als. Sla hem daar op als .jpg"; 
     
    }else{ 
     
        if($_FILES['bestand']['size'] > $maxsize){ 
         
        $error = "Het bestand is te groot, deze mag maximaal 250Kb zijn."; 
         
        }else{ 
         
        $succes = true; 
         
        } 
     
    } 
     
    if(!isset($succes) || isset($error)){ 
     
        echo "<b>Er is een fout op getreden:</b><br>"; 
     
        echo $error; 
     
        imagedestroy($thumb); 
     
    }else{ 
		$CID = $_COOKIE["CID"];
		$time = date(U);
     	$naam = "$CID-$time.jpg";
		
		
		$x = imagesx($thumb); 
         
        $y = imagesy($thumb); 
		
		// Toevoegen in SQL Database..
		include("config.php");
   		$query="INSERT INTO img (naam,breedte,hoogte,datum, CID) VALUES ('".$naam."','".$x."','".$y."',NOW(),'".$CID."');";
   		mysql_query($query) or die(mysql_error());
		
		
        move_uploaded_file($_FILES['bestand']['tmp_name'], $dir."$naam") or die("Kan niet uploaden"); 
         


        if(($max_x/$max_y) < ($x/$y)){ 
         
                $eind = imagecreatetruecolor($x/($x/$max_x), $y/($x/$max_x)) or die("Fout: imagecreattreucolor() 1"); 
             
            }else{ 

                $eind = imagecreatetruecolor($x/($y/$max_y), $y/($y/$max_y)) or die("Fout: imagecreattreucolor() 2"); 
             
            } 
         
        imagecopyresampled($eind, $thumb, 0, 0, 0, 0, imagesx($eind), imagesy($eind), $x, $y) or die("Fout: imagecopyresized()"); 
         
        imagegif($eind, $thumb_dir."$naam") or die("Fout: imagegif()"); 
         
        imagedestroy($thumb); 
         
        imagedestroy($eind); 
		
         ?>
		 <p class="h2">Fotoalbum</p>
		<div class="cbox" style="width: 600px;">
		<?php echo "<b>De foto is succesvolg toegevoegd !<br><br><a href=\"".$dir."$naam"."\" target=\"_blank\"><img src=\"".$thumb_dir."$naam"."\" border=\"0\"></a><br></div>"; 
     
    } 
     
} 

?>
<p class="h2">Fotoalbum</p>
<div class="cbox" style="width: 600px;">Hier kunt u een afbeelding toevoegen aan uw fotoalbum.<br>


<form action=<?php echo "".$_SERVER['PHP_SELF'].""; ?> method="post" enctype="multipart/form-data" name="form" id="form">
    <input name="bestand" type="file" id="bestand"  size="50">
    <br>
    <br> 

<input name="uploaden" type="submit" id="uploaden" value="Uploaden">

</form>
</div>



Waarschijnlijk leg ik het moeilijk uit..
Mocht je niet begrijpen wat ik bedoel,
gelieve niet te twijfelen om een reactie na te laten.

Alvast bedankt,
Olivier
[php]copy[/php]
Met enkel de file te kopiƫren ben ik toch niets?

Volgens mij moet het iets worden waarbij dit:

move_uploaded_file($_FILES['bestand']['tmp_name'], $dir."$naam") or die("Kan niet uploaden"); 


wordt vervangen door iets als dit:

        if(($max_x/$max_y) < ($x/$y)){ 
         
                $eind = imagecreatetruecolor($x/($x/$max_x), $y/($x/$max_x)) or die("Fout: imagecreattreucolor() 1"); 
             
            }else{ 

                $eind = imagecreatetruecolor($x/($y/$max_y), $y/($y/$max_y)) or die("Fout: imagecreattreucolor() 2"); 
             
            } 
         
        imagecopyresampled($eind, $thumb, 0, 0, 0, 0, imagesx($eind), imagesy($eind), $x, $y) or die("Fout: imagecopyresized()"); 
         
        imagegif($eind, $thumb_dir."$naam") or die("Fout: imagegif()"); 
         
        imagedestroy($thumb); 
         
        imagedestroy($eind); 


Of heb ik het mis?
Nogmaals even uitproberen..

Reageren