05. maj 2004 - 20:08
Der er
4 kommentarer og 2 løsninger
Hjælp til upload script.
Hej jeg er forholdsvis ny inden for PHP, så jeres svar må gerne være så en nybegynder kan forstå det. Jeg har prøvet at samle det her script som egentlig virker fint så længe det er JPG billeder der bliver uploadet. Problemet er at det ikke vil uploade PNG billeder. Medmindre at jeg sletter hele JPG delen i funktionen, for hvis jeg gør det funger det fint med PNG. Jeg kan simpelthen ikke finde ud af hvad jeg gør galt. function thumb($sourcefile,$targetfile,$max_size,$file_type){ if ($file_type == "image/pjpeg" OR "image/jpeg" OR "image/jpg"){ $source_id = imagecreatefromjpeg($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $max_size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagejpeg($target_id,$targetfile,100); } if ($file_type == "image/png" OR "image/x-png"){ $source_id = imagecreatefrompng($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $max_size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagepng($target_id,$targetfile,100); } }
Annonceindlæg fra Cognizant
Muligt det bare er mig, men hvorfor bruger du 2 if? Sæt istedet OR "image/png" OR "image/x-png", op ved siden af hvor der står OR jpeg osv.
Prøv at rette dine if-sætninger: function thumb($sourcefile,$targetfile,$max_size,$file_type){ ($file_type == "image/pjpeg" OR $file_type == "image/jpeg" OR $file_type == "image/jpg") { $source_id = imagecreatefromjpeg($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $max_size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagejpeg($target_id,$targetfile,100); } elseif ($file_type == "image/png" OR $file_type == "image/x-png"){ $source_id = imagecreatefrompng($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $max_size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagepng($target_id,$targetfile,100); } }
PS: Denne if-sætning vil altid være sand: if ($file_type == "image/pjpeg" OR "image/jpeg" OR "image/jpg"){
Super cool nu virker det. Tak, men hvor vil den ovenstående sætning altid være sand?
I denne: if ($file_type == "image/pjpeg" OR "image/jpeg" OR "image/jpg"){ i modsætning til: ($file_type == "image/pjpeg" OR $file_type == "image/jpeg" OR $file_type == "image/jpg") { spørger du jo ikke om: $file_type er lig med: "image/jpeg", men udelukkende om: "image/jpeg" er et sandt udtryk.
Vi tilbyder markedets bedste kurser inden for webudvikling