Mit billedeupload resizer ikke som det skal
Hejsa :)Sidder med et billede upload system, som ikke helt fungerer som jeg vil ha det...
Den uploader og resizer som den skal, MEN alligevel ikke.
Pga. har sat den til at resize til 150x165, men den vælger at resize til sine egne mål, har ingen idé om hvorfor.
Det er et som jeg har fundet her på eksperten og redigeret lidt i, så kender ikke så meget til scriptet.
Koden:
<?php
session_start();
include("../../includes/connect.php");
//SETTINGS
$uploadDir = 'upload/'; //Bibliotek, hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','gif','png'); //Hvilke filer vil vi acceptere bliver uploadet?
//THUMBS SETTINGS
$thumbDir = 'thumbs/'; //Bibliotek, hvor thumbs gemmes - husk chmod 777
$thumbPrefix = 'thumb_'; //Hvad skal tilføjes til originalt filnavn?
$uploadRand = rand(600,100000);
$thumbHeight = 165; //Thumb højde
$thumbWidth = 150; //Thumb bredde
$thumbQuality = 100; //Kvalitet af thumb, kan være fra 0 - dårligt til 100 - bedst
//Funktioner som bruges:
function getExtension($filename){
return strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
}
function resize( $filename, $newfilename, $maxw, $maxh, $quality=100 )
{
$extension = getExtension($filename);
switch($extension)
{
case 'jpeg':
case 'jpe':
case 'jpg':
$srcim = imagecreatefromjpeg( $filename );
break;
case 'gif':
$srcim = imagecreatefromgif( $filename );
break;
case 'png':
$srcim = imagecreatefrompng( $filename );
break;
default:
return false;
}
$ow = imagesx( $srcim );
$oh = imagesy( $srcim );
$wscale = $maxw / $ow;
$hscale = $maxh / $oh;
$scale = min( $hscale, $wscale );
$nw = round( $ow * $scale, 0 );
$nh = round( $oh * $scale, 0 );
$dstim = imagecreatetruecolor( $nw, $nh );
imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
switch($extension)
{
case 'jpeg':
case 'jpe':
case 'jpg':
imagejpeg( $dstim, $newfilename, $quality );
break;
case 'gif':
imagegif( $dstim, $newfilename );
break;
case 'png':
$png_q = floor( abs( $quality / 10 - 9.9 ) );
imagepng( $dstim, $newfilename, $png_q );
break;
default:
return false;
}
imagedestroy( $dstim );
imagedestroy( $srcim );
return file_exists($newfilename);
}
//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload']))
{
//Har vi en fil?
if(is_uploaded_file($_FILES['myFile']['tmp_name']))
{
//Filendelse
$extension = getExtension($_FILES['myFile']['name']);
//Er filen en af de filer vi gerne vil have?
if(in_array($extension,$allowedFileTypes))
{
//Vi flytter filen fra tmp til vores UPLOADDIR
if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . $uploadRand . basename($_FILES['myFile']['name'])))
{
if(resize($uploadDir . $uploadRand . basename($_FILES['myFile']['name']), $thumbDir . $thumbPrefix . $uploadRand . basename($_FILES['myFile']['name']), $thumbWidth, $thumbHeight, $thumbQuality)){
echo '<h3 class="fbgreenbox">('.$uploadRand.''.basename($_FILES['myFile']['name']).') uploadet og resized</h3>';
$img_normal = $uploadRand . basename($_FILES['myFile']['name']);
$sid = $_SESSION['id'];
$img_small = $thumbPrefix . $uploadRand . basename($_FILES['myFile']['name']);
mysql_query("UPDATE `users` SET `img` = '".$img_normal."', `img_small` = '".$img_small."' WHERE id = '$sid'")or die(mysql_error());
}else{
echo '<h3 class="fberrorbox">Dit billede er uploadet</h3>';
}
}
else
{
echo '<h3 class="fberrorbox">Fejl - Ikke muligt at uploade: '.basename($_FILES['myFile']['name']).'</h3>';
}
}
else
{
echo '<h3 class="fberrorbox">Forkert filtype, godkendte filtyper: ('.implode(',',$allowedFileTypes).')</h3>';
}
}
else
{
echo '<h3 class="fberrorbox">Du har ikke uploadet et billede<h3>';
}
}
//Vores form
echo '<form action="new_profilepic.php" method="post" enctype="multipart/form-data">';
echo '<p>Accepterede filtyper: ('.implode(',',$allowedFileTypes).'):</p> <input type="file" name="myFile"><br />';
echo '<input type="submit" name="myUpload" value="Upload Fil">';
echo '</form>';
?>