waarom wordt de bestandstype niet gemaakt?

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
Ik heb een functie gevonden die images verwerkt na het uploaden.
Het werkt, maar het bestand wat wordt weggeschreven heeft geen extentie

Hij maakt er 'image' van ipv 'image.jpg'

functie
PHP:
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;
  }

dit gebruik ik om de functie te starten
PHP:
	$image = new Get_Photo();
	$dir = "avatar/".$user_info['uid'];
	$file =  $_FILES['avatar']['tmp_name'];
	$type = explode('.',$_FILES['avatar']['name']);
	$filename = $user_info['uid'];
	$size = 12*1024;
	$h = 100;
	$image->img_resize($file, $size, $dir, $filename, $h );
 
Je moet de extensie er zelf achter zetten, die is namelijk niet verplicht ofzo en de functie voegt em dus ook niet zelf toe.

PHP:
imagejpeg($im, $save_dir.$save_name . ".jpg" );
 
thnx Frats voor je snelle reactie,
Ik was er zelf ook net achter gekomen.

Maar als ik de functie goed begrijp, dan verwerkt deze ook gif png.
Ik filter nu alleen op jgp, maar dat maak ik dan maar groter met een array met de andere extenties.
 
Ja inderdaad, de functie werkt voor alle drie de typen plaatjes als input.

Echter houd er wel rekening mee dat de functie maar 1 soort output heeft op het moment. Hij maakt altijd een jpeg image aan zoals de functie nu werkt, dus je zult meer moeten wijzigen dan alleen de extensie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan