uitgebreid upload script

Status
Niet open voor verdere reacties.

sjoerdjek

Gebruiker
Lid geworden
6 dec 2010
Berichten
54
Heeft iemand ook een upload script die de foto's gelijk een andere formaat geeft ( height en width.) maar ze wel goed schaalt?
 
Ja die heb ik.

Maar laat me raden, je vraag is eigenlijk of je deze gratis van iemand kan krijgen.

Mijn antwoord: nee.
 
Misschien kun je hier iets mee of naar eigen smaak aanpassen!

PHP:
class Get_Photo {
    
    private $Pdir = "images/photo/";
    private $Idir = "images/info/";

private function Check_Dir($folder) {
    
    if (!is_dir($folder)) {
        //echo "no Dir<br>";
        return false; // not a dir
    } else {
        //echo "Dir found<br>";
        return true;
    }
}

function img_resize( $tmpname, $size, $save_dir, $save_name, $maxisheight = 0 )
    {
    $save_dir     .= ( substr($save_dir,-1) != "/") ? "/" : "";
	if(!$this->Check_Dir($save_dir)) {
		//create dir
		if(!mkdir($save_dir, 0700, true)) {
			echo "failed making dir: ".$save_dir;
		}
	}
    $gis        = getimagesize($tmpname);
    $type        = $gis[2];
    switch($type)
        {
        case "1": $imorig = imagecreatefromgif($tmpname); break;
        case "2": $imorig = imagecreatefromjpeg($tmpname);break;
        case "3": $imorig = imagecreatefrompng($tmpname); break;
        default:  $imorig = imagecreatefromjpeg($tmpname);
        }
 
        $x = imagesx($imorig);
        $y = imagesy($imorig);
       
        $woh = (!$maxisheight)? $gis[0] : $gis[1] ;   
       
        if($woh <= $size)
        {
        $aw = $x;
        $ah = $y;
        }
            else
        {
            if(!$maxisheight){
                $aw = $size;
                $ah = $size * $y / $x;
            } else {
                $aw = $size * $x / $y;
                $ah = $size;
            }
        }  
        $im = imagecreatetruecolor($aw,$ah);
    if (imagecopyresampled($im,$imorig , 0,0,0,0,$aw,$ah,$x,$y))
        if (imagejpeg($im, $save_dir.$save_name))
            return true;
            else
            return false;
  }

    
/* Load all photos in the folder in a array */
Private function Load_Photos() {
    
    if ($this->Check_Dir($this->Pdir)){
        
        if ($handle = opendir($this->Pdir)) {

            /* loop over the directory */
            while (false !== ($file = readdir($handle))) {
                if ($file == "." || $file == ".."){
                    
                } else
                {
                    $names[] = $file;
                }
         }
         return $names;
         unset($names,$file);
           
        } else {
          return false;
        }// end if/else $handler
    }// end if Check_Dir
}// End Load_Photos


/*    Filter_Photos takes a array 
        with the names of the photos in the folder "photo"
        and a boolean to filter photos with or without a info file
        true for with info-file
        false for without info-file(admin)
        return array name of images */
    
Private function Filter_Photos($phots,$info=true) {

$X = 0;
WHILE($X < COUNT($phots)) {
    $dfile = explode('.',$phots[$X]);
    
    if (file_exists($this->Idir.$dfile[0].".info")) {
        $W_Photo[]= $phots[$X];
    } else {
        
        $N_Photo[]= $phots[$X];
    }
    $X++;
    }
    if($info) {
        $S_Photo = $W_Photo;
      } else {
        $S_Photo = $N_Photo;    
      }       
            
    if(!isset($S_Photo)) {
        return false;
    } else{
        return $S_Photo;
    }
    
    unset($photo,$S_Photo,$N_Photo,$W_Photo,$dfile);
}// End Filter_Photos

private function Photo_Size($photo) {
    
$x = 0;

WHILE ($x < count($photo)) {
        list($width, $height) = getimagesize($this->Pdir.$photo[$x]);
        
        $nw_photo[] = array( 'name' => $photo[$x],
                             'width' => $width,
                             'height' => $height);
        $x++;
    }
    return $nw_photo;
    
    unset($photo,$nw_photo,$x,$width,$height);
}

/*  Returns array with names of photos and size(width/height)
    and if $admin is false info
*/
public function Get_Images_Display($admin= true) {
    $Photos = $this->Load_Photos();

    if($Photos) {
        
        $Rphoto = $this->Filter_Photos($Photos, $admin);
        if($Rphoto){
        
        $Out_Photo = $this->Photo_Size($Rphoto);
        
        if($admin){
            $Out_Photo = $this->Get_Photo_Info($Out_Photo);
        }
        
        return $Out_Photo;
        
        } else {
            
            return false;
            
        }
    } else {
        
        return false;
        
    }
    
    
    unset($Photos,$W_Photo,$Out_Photo,$Rphoto);
    // Return array with photo's'
    
}// End Get_Images_Display

public function Get_Photo_Info($photo) {
    $x = 0;
    while($x < count($photo)) {
        $name = explode(".",$photo[$x]['name']);
        $info =array('info' => file_get_contents($this->Idir.$name[0].'.info'));
        
        $return[] = array_merge($photo[$x], $info);
        $x++;
    }
    
    return $return;
    // return content info-file
    
}// End Get_photo_info

public function Display_Images_No_Info() {
    
    // Return array of photos without a info-file
    
}// End Display_Images_No_Info


    
}// End Class Get_Photo
 
Bedankt en @grumbkow ik vraag niks om gratis te krijgen als iemand een goed script heeft ben ik bereid te betalen...
 
haha zal ik ff mijn rekeningnummer in zwitserland geven!

Waar ben je eigenlijk mee bezig, zie je vaker langs komen voor raad!
 
Ik ben bezig met een websites en moet wat opdrachten doen voor school. Veel kan ik wel zelf maar bepaalde dingen word ons gewoon niet geleerd.
Dus daarvoor is dit forum echt super voor heb er altijd wat aan :D en leer er meteen ook wat van.

Vind jij trouwens OOP lastig? ik zelf wel maar moet vandaag nog even een opdracht maken van school er van misschien dat het dan beter gaat :).
 
Ik ben zelf nu zo'n half jaar met oop bezig, moet zeggen in het begin was het heel verwarrend. Vooral hoe het uitgelegd word.
Maar online heb ik toen een hele duidelijke tut gevonden waardoor het kwartje viel.

Het is gewoon slim gebruik maken van Classes.
Ik heb alles mezelf geleerd(Waarschijnlijk ook kromme dingen). Maar ik vind progammeer regels ondergeschikt aan de werking.
Ik probeer wel om veel comments te gebruiken voor als ik iets in de toekomst moet terug zoeken. Maar dat ik ook door schade en schande geleerd.

En de meest wijze les is, kijk eerst wat voor een php versie op een sever gebruikt word.
Ik heb ooit eens iets gemaakt in versie 5 en de server was 4, dus ik moest alles gaan hercode.
 
jeetje dat is irritant inderdaad. Ja dat heb ik nu ook gedaan met GD library. Want ik ga bij het uploadscript maken dat er een watermerk overheen komt ( logo van de site) en dan kan je wel beginnen maar als je niet weet welke versie de server aan kan. Ik weet niet of j hier namen van servers mag noemen maar dieik heb is best goed en niet duur.

Ik zal vanavond eens lekker bezig met OOP, Weet je toevallig die tutorial nog? ik heb zelf deze gevonden:http://www.sitemasters.be/tutorials/1/1/567/PHP/OOP_Een_begin_maken_met_OOP

En moet nog even iets meer weten over beveiliging we moeten nu ineens een presentatie houden en nog nooit 1 les er over gehad dus dat is een beetje krom...
 
lang leve youtube! kijk daar eens voor php tuts, staat van alles over login en ook watermerken maken.
Ik hen zelf heel veel gehad aan video tuts, dan kun je ook zien wat ze doen en ze vertellen ook waarom.
HIER staan heel veel tuts over php, jquery, css en regex.
 
Ja ik kijk ook altijd filmpjes :) want vind het echt heerlijk leren steek er echt veel van op. Zal kijken of ik het kan doen vandaag want 1 oor namelijk beetje doof. hoop dat de tuts niet te zacht zijn ;)

maar bedankt voor de tips :D
 
Jeetje mooi website is dat:D heb nu al meerdere dingen die echt super zijn.
Koop je zelf ook nog wel eens boeken ofzo?
 
Haha Kopen??? ik ben 100%hollander!!!

Nee ik heb een handicap. Ik kan niet leren uit boeken, de letters gaan dan dansen!
Dus video tuts, forums en doen leren mij het beste wat ik wil weten.
 
ja das waar, maar het lijkt me wel handig om een x een echt goed css boek ofzo. Gewoon een keer lekker in te lezen. En ik ben lid van het webdesign blad :D super boekje.
 
Css is eigenlijk relatief eenvoudig en het is helemaal leuk als je het gaat gebruiken in combinatie met Jquery.
Bij bijna alle video tuts op in the woods wordt ook css gebruikt! vooral de jquery series.

Css3 is waarmee het leuk word, maar dat wordt niet door de oudere browsers ondersteund.
Net als HTML5.
Wel super dat er nu eindelijk een beetje standaard in alles komt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan