Upload i php
Hejsa exp.dk brugere!Jeg har et billedeupload system som egentlig virker godt nok, bortset fra at det ik checker om billedet er over en vis højde / bredde. Scriptet bliver 'fodret' med input'et file. Nogen der kan se hvorfor at man ikke bliver sendt til ".$_SERVER["PHP_SELF"]."?pMsg=5 ?
Koden er som følger, ved godt 10 er et meget lavt tal for en bredde, og dette ændres.
$extlimit = "ja";
$limitedext = array(".JPG",".jpg",".jpeg");
$sizelimit = "ja";
$sizebytes = "35000";
$absolute_path = "img/users";
if($_POST['act']){
$dir = "dir";
if ($file != "") {
$ext=strrchr($file_name,'.');
$ext=strtolower($ext);
if ($_FILES['file']['size'] > $sizebytes) {
header("location: ".$_SERVER["PHP_SELF"]."?pMsg=1");
break;
}
if (($extlimit == "ja") && (!in_array($ext,$limitedext))) {
header("location: ".$_SERVER["PHP_SELF"]."?pMsg=2");
break;
}
@copy($file, $absolute_path."/".$_COOKIE[user]."".$ext) or die("File couldn't be copied to server : ".$absolute_path."/".$_COOKIE[user]."".$ext);
#-+ Read the source image
$src_img = ImageCreateFromJPEG($absolute_path."/".$_COOKIE[user]."".$ext);
#Hent billedets bredde og højde
$imginfo = getimagesize($absolute_path."/".$_COOKIE[user]."".$ext);
$org_w= $imginfo[0];
$org_h = $imginfo[1];
$maxwidth = "10";
if($org_w < $maxwidth){
header("location: ".$_SERVER["PHP_SELF"]."?pMsg=5");
break;
}
#Sæt det nye billede
$dst_img = imagecreatetruecolor($org_w,$org_h);
#Ændre det!
ImageCopyResized($dst_img, $src_img, 0, 0, 0, 0, $org_w, $org_h, $org_w, $org_h);
#Gem det!
ImageJPEG($dst_img, $absolute_path."/".$_COOKIE[user]."".$ext, "95");
#slet "midlertidige" filer fra serveren.
imagedestroy($dst_img);
} else {
header("location: ".$_SERVER["PHP_SELF"]."?pMsg=3");
}
mysql_query("UPDATE users SET image='".$_COOKIE['user']."".$ext."' WHERE id= '$_COOKIE[user]' LIMIT 1");
header("location: ".$_SERVER["PHP_SELF"]."?pMsg=4");
}
Håber I har nogle gode svar :)