25. oktober 2004 - 14:38
Der er
2 kommentarer og 1 løsning
Et par spørgsmål til mit upload og resize billede script
Jeg har et "upload billede og lav en resized kopi" - script, og jeg har et par spørgsmål til det. 1) Jeg vil sørge for at brugeren ikke uploader en farlig fil, og til det har jeg skrevet denne linie: elseif(strstr("exe php asp cgi", $_FILES['uploadlogo']['type'])) { $melding = "File format not allowed, only images !"; Er det en smart måde at gøre det på ? Den virker lidt plat i mine øjne ! 2) Mit script duer kun med jpg, men det skal også virke med gif: } else { move_uploaded_file($_FILES['uploadlogo']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); $filename = $location.$_FILES['uploadlogo']['name']; header('Content-type: image/jpeg'); list($width, $height) = getimagesize($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); $new_width = 100; $krympefaktor = $new_width/$width; $new_height = round($height * $krympefaktor); $image_blank = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); imagecopyresampled($image_blank, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagejpeg( $image_blank, $_SERVER['DOCUMENT_ROOT']."/cms/images/".basename($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name'], ".jpg")."_thumb.jpg", 85 ); $newfilename = basename($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name'], ".jpg")."_thumb.jpg"; $newfileurl = $_POST['uploadurl']; writeFile($newfilename, $newfileurl); Et par kommentarer og en løsning på gif-problematikken ?! På forhånd tak :)
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
25. oktober 2004 - 15:14
#1
Jeg skrev koden lidt om, så den burde virke, men der sker ikke noget... dvs. gif-billedet bliver uploaded, men der laves ikke nogen thumb. Der står i min PHP bog at imagegif kun virker på meget gamle GD lib's. -Så det er nok det, der er galt. Hvad gør man så ?! Hvorfor findes den funktion ikke mere... Mit script ser sådan her ud nu: move_uploaded_file($_FILES['uploadlogo']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); if($_FILES['uploadfile']['type'] == "image/gif") header('Content-type: image/gif'); elseif($_FILES['uploadfile']['type'] == "image/pjpeg") header('Content-type: image/jpg'); list($width, $height) = getimagesize($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); $new_width = 100; $krympefaktor = $new_width/$width; $new_height = round($height * $krympefaktor); $image_blank = imagecreatetruecolor($new_width, $new_height); if($_FILES['uploadfile']['type'] == "image/pjpeg") { $image = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); imagecopyresampled($image_blank, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagejpeg( $image_blank, $_SERVER['DOCUMENT_ROOT']."/cms/images/".basename($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name'], ".jpg")."_thumb.jpg", 85 ); $newfilename = basename($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name'], ".gif")."_thumb.gif"; } elseif($_FILES['uploadfile']['type'] == "image/gif") { $image = imagecreatefromgif($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); imagecopyresampled($image_blank, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagegif( $image_blank, $_SERVER['DOCUMENT_ROOT']."/cms/images/".basename($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name'], ".gif")."_thumb.gif"); $newfilename = basename($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name'], ".jpg")."_thumb.jpg"; } $newfileurl = $_POST['uploadurl']; writeFile($newfilename, $newfileurl); HJÆLP :)
25. oktober 2004 - 15:16
#2
Ken jeg eventuelt lave gif-billedet om til jpg, når jeg kopierer det, og få det til at virke, eller er der en anden måde at lave gif-billeder ud af gif-billeder :)
25. oktober 2004 - 16:43
#3
Sært at der ikke var nogen, der ville kigge på det ?? Men efter 1½ time har jeg nu fået det fikset på denne måde: move_uploaded_file($_FILES['uploadlogo']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); list($width, $height) = getimagesize($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); $new_width = 100; $krympefaktor = $new_width/$width; $new_height = round($height * $krympefaktor); $destinationImage = imagecreatetruecolor($new_width, $new_height); if($_FILES['uploadlogo']['type'] == "image/pjpeg") { $sourceImage = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage)); imagepng($destinationImage, $_SERVER['DOCUMENT_ROOT']."/cms/images/".basename($_FILES['uploadlogo']['name'], ".jpg")."_thumb.jpg"); $newfilename = basename($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name'], ".jpg")."_thumb.jpg"; } elseif($_FILES['uploadlogo']['type'] == "image/gif") { $sourceImage = imagecreatefromgif($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']); imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage)); imagepng($destinationImage, $_SERVER['DOCUMENT_ROOT']."/cms/images/".basename($_FILES['uploadlogo']['name'], ".gif")."_thumb.gif"); $newfilename = basename($_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name'], ".gif")."_thumb.gif"; } $newfileurl = $_POST['uploadurl']; writeFile($newfilename, $newfileurl); Det er jo smukt :)
Vi tilbyder markedets bedste kurser inden for webudvikling